[X86] Allow any 8-bit immediate to be used with bt/btc/btr/bts memory aliases.

We have aliases that disambiguate memory forms of bt/btc/btr/bts
without suffixes to the 32-bit form. These aliases should have
been updated when the instructions were updated in r356413.

llvm-svn: 368127
This commit is contained in:
Craig Topper 2019-08-07 06:17:58 +00:00
parent 624980037d
commit f192cc587c
2 changed files with 8 additions and 4 deletions

View File

@ -3219,13 +3219,13 @@ def : InstAlias<"aam", (AAM8i8 10)>, Requires<[Not64BitMode]>;
// Disambiguate the mem/imm form of bt-without-a-suffix as btl.
// Likewise for btc/btr/bts.
def : InstAlias<"bt\t{$imm, $mem|$mem, $imm}",
(BT32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
(BT32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
def : InstAlias<"btc\t{$imm, $mem|$mem, $imm}",
(BTC32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
(BTC32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
def : InstAlias<"btr\t{$imm, $mem|$mem, $imm}",
(BTR32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
(BTR32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
def : InstAlias<"bts\t{$imm, $mem|$mem, $imm}",
(BTS32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
(BTS32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
// clr aliases.
def : InstAlias<"clr{b}\t$reg", (XOR8rr GR8 :$reg, GR8 :$reg), 0>;

View File

@ -10576,15 +10576,19 @@ blendvps %xmm0, (%eax), %xmm1
// CHECK: btcw $4, (%eax)
// CHECK: btcl $4, (%eax)
bt $4, (%eax)
bt $255, (%eax)
btw $4, (%eax)
btl $4, (%eax)
bts $4, (%eax)
bts $255, (%eax)
btsw $4, (%eax)
btsl $4, (%eax)
btr $4, (%eax)
btr $255, (%eax)
btrw $4, (%eax)
btrl $4, (%eax)
btc $4, (%eax)
btc $255, (%eax)
btcw $4, (%eax)
btcl $4, (%eax)