Implement the remaining BMI1/2 intrinsic (dotnet/coreclr#21480)
authorFei Peng <fei.peng@intel.com>
Fri, 21 Dec 2018 15:14:08 +0000 (07:14 -0800)
committerCarol Eidt <carol.eidt@microsoft.com>
Fri, 21 Dec 2018 15:14:08 +0000 (07:14 -0800)
commit893b2a0847262546c6812c0fe30409eec95d1835
treee99d1582b6630826a0f3f2a22b689bfb59670236
parent359416dcad8cb48f6dbd2ac874c6a476b51f09ad
Implement the remaining BMI1/2 intrinsic (dotnet/coreclr#21480)

* Add tests for BMI1/2 intrinsic

* Implement the remaining BMI1/2 intrinsic

* Fix emitDispIns for BMI instruction

Commit migrated from https://github.com/dotnet/coreclr/commit/7ac4a46d1528484e38e4c808d8a0bbe1b715e0d2
37 files changed:
src/coreclr/src/jit/codegen.h
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/emitxarch.cpp
src/coreclr/src/jit/gentree.cpp
src/coreclr/src/jit/hwintrinsiccodegenxarch.cpp
src/coreclr/src/jit/hwintrinsiclistxarch.h
src/coreclr/src/jit/hwintrinsicxarch.cpp
src/coreclr/src/jit/instrsxarch.h
src/coreclr/src/jit/lowerxarch.cpp
src/coreclr/src/jit/lsraxarch.cpp
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1.X64/BitFieldExtract.UInt64.3Op.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1.X64/BitFieldExtract.UInt64.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1.X64/Bmi1.X64_r.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1.X64/Bmi1.X64_ro.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1.X64/Program.Bmi1.X64.cs
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1/BitFieldExtract.UInt32.3Op.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1/BitFieldExtract.UInt32.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1/Bmi1_r.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1/Bmi1_ro.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi1/Program.Bmi1.cs
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2.X64/Bmi2.X64_r.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2.X64/Bmi2.X64_ro.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2.X64/MultiplyNoFlags.UInt64.BinRes.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2.X64/MultiplyNoFlags.UInt64.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2.X64/Program.Bmi2.X64.cs
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2.X64/ZeroHighBits.UInt64.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2/Bmi2_r.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2/Bmi2_ro.csproj
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2/MultiplyNoFlags.UInt32.BinRes.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2/MultiplyNoFlags.UInt32.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2/Program.Bmi2.cs
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Bmi2/ZeroHighBits.UInt32.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Shared/GenerateTests.csx
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Shared/ScalarBinOpTest.template
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Shared/ScalarTernOpBinResTest.template [new file with mode: 0644]
src/coreclr/tests/src/JIT/HardwareIntrinsics/X86/Shared/ScalarTernOpTest.template [new file with mode: 0644]
src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Bmi1.cs