Skip to content

Commit 4d90477

Browse files
committed
[X86][AVX] Add missing VEX_WIG tags from VPACKUSDW/VPHSUBD/VPCMPISTRI/VPCMPISTRM/VPCMPESTRI/VPCMPESTRM
Fixes PR48877 Differential Revision: https://reviews.llvm.org/D95801
1 parent dc00c96 commit 4d90477

File tree

3 files changed

+32
-8
lines changed

3 files changed

+32
-8
lines changed

llvm/lib/Target/X86/X86InstrSSE.td

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3778,7 +3778,7 @@ let Predicates = [HasAVX, NoVLX_Or_NoBWI] in {
37783778
VEX_4V, VEX_WIG;
37793779
defm VPACKUSDW : sse4_pack<0x2B, "vpackusdw", v8i16, v4i32, X86Packus, VR128,
37803780
i128mem, SchedWriteShuffle.XMM, load, 0>,
3781-
VEX_4V;
3781+
VEX_4V, VEX_WIG;
37823782
}
37833783

37843784
let Predicates = [HasAVX2, NoVLX_Or_NoBWI] in {
@@ -3794,7 +3794,7 @@ let Predicates = [HasAVX2, NoVLX_Or_NoBWI] in {
37943794
VEX_4V, VEX_L, VEX_WIG;
37953795
defm VPACKUSDWY : sse4_pack<0x2B, "vpackusdw", v16i16, v8i32, X86Packus, VR256,
37963796
i256mem, SchedWriteShuffle.YMM, load, 0>,
3797-
VEX_4V, VEX_L;
3797+
VEX_4V, VEX_L, VEX_WIG;
37983798
}
37993799

38003800
let Constraints = "$src1 = $dst" in {
@@ -4756,7 +4756,7 @@ let isCommutable = 0 in {
47564756
SchedWritePHAdd.XMM, 0>, VEX_4V, VEX_WIG;
47574757
defm VPHSUBD : SS3I_binop_rm<0x06, "vphsubd", X86hsub, v4i32, v4i32, VR128,
47584758
load, i128mem,
4759-
SchedWritePHAdd.XMM, 0>, VEX_4V;
4759+
SchedWritePHAdd.XMM, 0>, VEX_4V, VEX_WIG;
47604760
defm VPSIGNB : SS3I_binop_rm_int<0x08, "vpsignb",
47614761
int_x86_ssse3_psign_b_128,
47624762
SchedWriteVecALU.XMM, load, 0>, VEX_4V, VEX_WIG;
@@ -4802,7 +4802,7 @@ let isCommutable = 0 in {
48024802
SchedWritePHAdd.YMM, 0>, VEX_4V, VEX_L, VEX_WIG;
48034803
defm VPHSUBDY : SS3I_binop_rm<0x06, "vphsubd", X86hsub, v8i32, v8i32, VR256,
48044804
load, i256mem,
4805-
SchedWritePHAdd.YMM, 0>, VEX_4V, VEX_L;
4805+
SchedWritePHAdd.YMM, 0>, VEX_4V, VEX_L, VEX_WIG;
48064806
defm VPSIGNB : SS3I_binop_rm_int_y<0x08, "vpsignb", int_x86_avx2_psign_b,
48074807
SchedWriteVecALU.YMM>, VEX_4V, VEX_L, VEX_WIG;
48084808
defm VPSIGNW : SS3I_binop_rm_int_y<0x09, "vpsignw", int_x86_avx2_psign_w,
@@ -6503,7 +6503,7 @@ multiclass pcmpistrm_SS42AI<string asm> {
65036503

65046504
let Defs = [XMM0, EFLAGS], hasSideEffects = 0 in {
65056505
let Predicates = [HasAVX] in
6506-
defm VPCMPISTRM : pcmpistrm_SS42AI<"vpcmpistrm">, VEX;
6506+
defm VPCMPISTRM : pcmpistrm_SS42AI<"vpcmpistrm">, VEX, VEX_WIG;
65076507
defm PCMPISTRM : pcmpistrm_SS42AI<"pcmpistrm"> ;
65086508
}
65096509

@@ -6521,7 +6521,7 @@ multiclass SS42AI_pcmpestrm<string asm> {
65216521

65226522
let Defs = [XMM0, EFLAGS], Uses = [EAX, EDX], hasSideEffects = 0 in {
65236523
let Predicates = [HasAVX] in
6524-
defm VPCMPESTRM : SS42AI_pcmpestrm<"vpcmpestrm">, VEX;
6524+
defm VPCMPESTRM : SS42AI_pcmpestrm<"vpcmpestrm">, VEX, VEX_WIG;
65256525
defm PCMPESTRM : SS42AI_pcmpestrm<"pcmpestrm">;
65266526
}
65276527

@@ -6539,7 +6539,7 @@ multiclass SS42AI_pcmpistri<string asm> {
65396539

65406540
let Defs = [ECX, EFLAGS], hasSideEffects = 0 in {
65416541
let Predicates = [HasAVX] in
6542-
defm VPCMPISTRI : SS42AI_pcmpistri<"vpcmpistri">, VEX;
6542+
defm VPCMPISTRI : SS42AI_pcmpistri<"vpcmpistri">, VEX, VEX_WIG;
65436543
defm PCMPISTRI : SS42AI_pcmpistri<"pcmpistri">;
65446544
}
65456545

@@ -6557,7 +6557,7 @@ multiclass SS42AI_pcmpestri<string asm> {
65576557

65586558
let Defs = [ECX, EFLAGS], Uses = [EAX, EDX], hasSideEffects = 0 in {
65596559
let Predicates = [HasAVX] in
6560-
defm VPCMPESTRI : SS42AI_pcmpestri<"vpcmpestri">, VEX;
6560+
defm VPCMPESTRI : SS42AI_pcmpestri<"vpcmpestri">, VEX, VEX_WIG;
65616561
defm PCMPESTRI : SS42AI_pcmpestri<"pcmpestri">;
65626562
}
65636563

llvm/test/MC/Disassembler/X86/x86-64-avx.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,35 @@
33
# CHECK: vpackusdw (%rax), %xmm2, %xmm1
44
0xc4 0xe2 0x69 0x2b 0x08
55

6+
# CHECK: vpackusdw (%rax), %xmm2, %xmm1
7+
0xc4 0xe2 0xe9 0x2b 0x08
8+
69
# CHECK: vphsubd %xmm3, %xmm2, %xmm11
710
0xc4 0x62 0x69 0x06 0xdb
811

12+
# CHECK: vphsubd %xmm3, %xmm2, %xmm11
13+
0xc4 0x62 0xe9 0x06 0xdb
14+
915
# CHECK: vpcmpestri $100, %xmm3, %xmm11
1016
0xc4 0x63 0x79 0x61 0xdb 0x64
1117

18+
# CHECK: vpcmpestri $100, %xmm3, %xmm11
19+
0xc4 0x63 0xf9 0x61 0xdb 0x64
20+
1221
# CHECK: vpcmpestrm $100, %xmm3, %xmm11
1322
0xc4 0x63 0x79 0x60 0xdb 0x64
1423

24+
# CHECK: vpcmpestrm $100, %xmm3, %xmm11
25+
0xc4 0x63 0xf9 0x60 0xdb 0x64
26+
1527
# CHECK: vpcmpistri $100, %xmm3, %xmm11
1628
0xc4 0x63 0x79 0x63 0xdb 0x64
1729

30+
# CHECK: vpcmpistri $100, %xmm3, %xmm11
31+
0xc4 0x63 0xf9 0x63 0xdb 0x64
32+
1833
# CHECK: vpcmpistrm $100, %xmm3, %xmm11
1934
0xc4 0x63 0x79 0x62 0xdb 0x64
35+
36+
# CHECK: vpcmpistrm $100, %xmm3, %xmm11
37+
0xc4 0x63 0xf9 0x62 0xdb 0x64

llvm/test/MC/Disassembler/X86/x86-64-avx2.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,11 @@
33
# CHECK: vpackusdw %ymm0, %ymm2, %ymm1
44
0xc4 0xe2 0x6d 0x2b 0xc8
55

6+
# CHECK: vpackusdw %ymm0, %ymm2, %ymm1
7+
0xc4 0xe2 0xed 0x2b 0xc8
8+
69
# CHECK: vphsubd %ymm0, %ymm2, %ymm1
710
0xc4 0xe2 0x6d 0x06 0xc8
11+
12+
# CHECK: vphsubd %ymm0, %ymm2, %ymm1
13+
0xc4 0xe2 0xed 0x06 0xc8

0 commit comments

Comments
 (0)