[llvm] [X86][MC] Support Enc/Dec for NF for promoted BMI instructions in 73899 (PR #76709)
Shengchen Kan via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 2 23:59:46 PST 2024
================
@@ -1314,19 +1323,30 @@ let Predicates = [HasBMI2, NoEGPR], Defs = [EFLAGS] in {
defm BZHI64 : bmi4VOp3_base<0xF5, "bzhi{q}", GR64, i64mem,
X86bzhi, loadi64, WriteBZHI>, REX_W;
}
-let Predicates = [HasBMI, HasEGPR], Defs = [EFLAGS] in {
+let Predicates = [HasBMI, HasEGPR, In64BitMode], Defs = [EFLAGS] in {
defm BEXTR32 : bmi4VOp3_base<0xF7, "bextr{l}", GR32, i32mem,
X86bextr, loadi32, WriteBEXTR, "_EVEX">, EVEX;
defm BEXTR64 : bmi4VOp3_base<0xF7, "bextr{q}", GR64, i64mem,
X86bextr, loadi64, WriteBEXTR, "_EVEX">, EVEX, REX_W;
}
-let Predicates = [HasBMI2, HasEGPR], Defs = [EFLAGS] in {
+let Predicates = [HasBMI2, HasEGPR, In64BitMode], Defs = [EFLAGS] in {
defm BZHI32 : bmi4VOp3_base<0xF5, "bzhi{l}", GR32, i32mem,
X86bzhi, loadi32, WriteBZHI, "_EVEX">, EVEX;
defm BZHI64 : bmi4VOp3_base<0xF5, "bzhi{q}", GR64, i64mem,
X86bzhi, loadi64, WriteBZHI, "_EVEX">, EVEX, REX_W;
}
+let Predicates = [In64BitMode], Pattern = [(null_frag)] in {
+ defm BEXTR32 : bmi4VOp3_base<0xF7, "bextr{l}", GR32, i32mem,
+ X86bextr, loadi32, WriteBEXTR, "_NF">, EVEX, EVEX_NF;
+ defm BEXTR64 : bmi4VOp3_base<0xF7, "bextr{q}", GR64, i64mem,
----------------
KanRobert wrote:
It's strange to set `VEX` inside the class but set `EVEX` here.
https://github.com/llvm/llvm-project/pull/76709
More information about the llvm-commits
mailing list