Skip to content

Commit eb64697

Browse files
committed
[X86][Codegen] Correct the domain of VP2INTERSECT
GenericDomain -> SSEPackedInt Found by #73654
1 parent 14ca8d4 commit eb64697

File tree

5 files changed

+36
-36
lines changed

5 files changed

+36
-36
lines changed

llvm/lib/Target/X86/X86InstrAVX512.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12875,8 +12875,10 @@ multiclass avx512_vp2intersect<X86SchedWriteWidths sched, AVX512VLVectorVTInfo _
1287512875
}
1287612876
}
1287712877

12878+
let ExeDomain = SSEPackedInt in {
1287812879
defm VP2INTERSECTD : avx512_vp2intersect<SchedWriteVecALU, avx512vl_i32_info>;
1287912880
defm VP2INTERSECTQ : avx512_vp2intersect<SchedWriteVecALU, avx512vl_i64_info>, REX_W;
12881+
}
1288012882

1288112883
multiclass avx512_binop_all2<bits<8> opc, string OpcodeStr,
1288212884
X86SchedWriteWidths sched,

llvm/test/CodeGen/X86/avx512vlvp2intersect-intrinsics.ll

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ define void @test_mm256_2intersect_epi32_p(ptr nocapture readonly %a, ptr nocapt
8484
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x0c]
8585
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x08]
8686
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04]
87-
; X86-NEXT: vmovaps (%edx), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x02]
87+
; X86-NEXT: vmovdqa (%edx), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0x02]
8888
; X86-NEXT: vp2intersectd (%ecx), %ymm0, %k0 # encoding: [0x62,0xf2,0x7f,0x28,0x68,0x01]
8989
; X86-NEXT: kmovw %k1, %ecx # encoding: [0xc5,0xf8,0x93,0xc9]
9090
; X86-NEXT: kmovw %k0, %edx # encoding: [0xc5,0xf8,0x93,0xd0]
@@ -96,7 +96,7 @@ define void @test_mm256_2intersect_epi32_p(ptr nocapture readonly %a, ptr nocapt
9696
;
9797
; X64-LABEL: test_mm256_2intersect_epi32_p:
9898
; X64: # %bb.0: # %entry
99-
; X64-NEXT: vmovaps (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x07]
99+
; X64-NEXT: vmovdqa (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0x07]
100100
; X64-NEXT: vp2intersectd (%rsi), %ymm0, %k0 # encoding: [0x62,0xf2,0x7f,0x28,0x68,0x06]
101101
; X64-NEXT: kmovw %k1, %eax # encoding: [0xc5,0xf8,0x93,0xc1]
102102
; X64-NEXT: kmovw %k0, %esi # encoding: [0xc5,0xf8,0x93,0xf0]
@@ -125,7 +125,7 @@ define void @test_mm256_2intersect_epi64_p(ptr nocapture readonly %a, ptr nocapt
125125
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
126126
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
127127
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
128-
; X86-NEXT: vmovaps (%esi), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x06]
128+
; X86-NEXT: vmovdqa (%esi), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0x06]
129129
; X86-NEXT: vp2intersectq (%edx), %ymm0, %k0 # encoding: [0x62,0xf2,0xff,0x28,0x68,0x02]
130130
; X86-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
131131
; X86-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -142,7 +142,7 @@ define void @test_mm256_2intersect_epi64_p(ptr nocapture readonly %a, ptr nocapt
142142
;
143143
; X64-LABEL: test_mm256_2intersect_epi64_p:
144144
; X64: # %bb.0: # %entry
145-
; X64-NEXT: vmovaps (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfc,0x28,0x07]
145+
; X64-NEXT: vmovdqa (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc5,0xfd,0x6f,0x07]
146146
; X64-NEXT: vp2intersectq (%rsi), %ymm0, %k0 # encoding: [0x62,0xf2,0xff,0x28,0x68,0x06]
147147
; X64-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
148148
; X64-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -175,7 +175,7 @@ define void @test_mm256_2intersect_epi32_b(ptr nocapture readonly %a, ptr nocapt
175175
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x0c]
176176
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x08]
177177
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04]
178-
; X86-NEXT: vbroadcastss (%edx), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x18,0x02]
178+
; X86-NEXT: vpbroadcastd (%edx), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x58,0x02]
179179
; X86-NEXT: vp2intersectd (%ecx){1to8}, %ymm0, %k0 # encoding: [0x62,0xf2,0x7f,0x38,0x68,0x01]
180180
; X86-NEXT: kmovw %k1, %ecx # encoding: [0xc5,0xf8,0x93,0xc9]
181181
; X86-NEXT: kmovw %k0, %edx # encoding: [0xc5,0xf8,0x93,0xd0]
@@ -187,7 +187,7 @@ define void @test_mm256_2intersect_epi32_b(ptr nocapture readonly %a, ptr nocapt
187187
;
188188
; X64-LABEL: test_mm256_2intersect_epi32_b:
189189
; X64: # %bb.0: # %entry
190-
; X64-NEXT: vbroadcastss (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x18,0x07]
190+
; X64-NEXT: vpbroadcastd (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x58,0x07]
191191
; X64-NEXT: vp2intersectd (%rsi){1to8}, %ymm0, %k0 # encoding: [0x62,0xf2,0x7f,0x38,0x68,0x06]
192192
; X64-NEXT: kmovw %k1, %eax # encoding: [0xc5,0xf8,0x93,0xc1]
193193
; X64-NEXT: kmovw %k0, %esi # encoding: [0xc5,0xf8,0x93,0xf0]
@@ -220,7 +220,7 @@ define void @test_mm256_2intersect_epi64_b(ptr nocapture readonly %a, ptr nocapt
220220
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
221221
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
222222
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
223-
; X86-NEXT: vbroadcastsd (%esi), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x19,0x06]
223+
; X86-NEXT: vpbroadcastq (%esi), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x59,0x06]
224224
; X86-NEXT: vp2intersectq (%edx){1to4}, %ymm0, %k0 # encoding: [0x62,0xf2,0xff,0x38,0x68,0x02]
225225
; X86-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
226226
; X86-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -237,7 +237,7 @@ define void @test_mm256_2intersect_epi64_b(ptr nocapture readonly %a, ptr nocapt
237237
;
238238
; X64-LABEL: test_mm256_2intersect_epi64_b:
239239
; X64: # %bb.0: # %entry
240-
; X64-NEXT: vbroadcastsd (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x19,0x07]
240+
; X64-NEXT: vpbroadcastq (%rdi), %ymm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x59,0x07]
241241
; X64-NEXT: vp2intersectq (%rsi){1to4}, %ymm0, %k0 # encoding: [0x62,0xf2,0xff,0x38,0x68,0x06]
242242
; X64-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
243243
; X64-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -362,7 +362,7 @@ define void @test_mm_2intersect_epi32_p(ptr nocapture readonly %a, ptr nocapture
362362
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
363363
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
364364
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
365-
; X86-NEXT: vmovaps (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x06]
365+
; X86-NEXT: vmovdqa (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0x06]
366366
; X86-NEXT: vp2intersectd (%edx), %xmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x08,0x68,0x02]
367367
; X86-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
368368
; X86-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -378,7 +378,7 @@ define void @test_mm_2intersect_epi32_p(ptr nocapture readonly %a, ptr nocapture
378378
;
379379
; X64-LABEL: test_mm_2intersect_epi32_p:
380380
; X64: # %bb.0: # %entry
381-
; X64-NEXT: vmovaps (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
381+
; X64-NEXT: vmovdqa (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0x07]
382382
; X64-NEXT: vp2intersectd (%rsi), %xmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x08,0x68,0x06]
383383
; X64-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
384384
; X64-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -414,7 +414,7 @@ define void @test_mm_2intersect_epi64_p(ptr nocapture readonly %a, ptr nocapture
414414
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
415415
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
416416
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
417-
; X86-NEXT: vmovaps (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x06]
417+
; X86-NEXT: vmovdqa (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0x06]
418418
; X86-NEXT: vp2intersectq (%edx), %xmm0, %k0 # encoding: [0x62,0xf2,0xff,0x08,0x68,0x02]
419419
; X86-NEXT: kshiftlw $14, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0e]
420420
; X86-NEXT: kshiftrw $14, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0e]
@@ -430,7 +430,7 @@ define void @test_mm_2intersect_epi64_p(ptr nocapture readonly %a, ptr nocapture
430430
;
431431
; X64-LABEL: test_mm_2intersect_epi64_p:
432432
; X64: # %bb.0: # %entry
433-
; X64-NEXT: vmovaps (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf8,0x28,0x07]
433+
; X64-NEXT: vmovdqa (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6f,0x07]
434434
; X64-NEXT: vp2intersectq (%rsi), %xmm0, %k0 # encoding: [0x62,0xf2,0xff,0x08,0x68,0x06]
435435
; X64-NEXT: kshiftlw $14, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0e]
436436
; X64-NEXT: kshiftrw $14, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0e]
@@ -466,7 +466,7 @@ define void @test_mm_2intersect_epi32_b(ptr nocapture readonly %a, ptr nocapture
466466
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
467467
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
468468
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
469-
; X86-NEXT: vbroadcastss (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x06]
469+
; X86-NEXT: vpbroadcastd (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x58,0x06]
470470
; X86-NEXT: vp2intersectd (%edx){1to4}, %xmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x18,0x68,0x02]
471471
; X86-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
472472
; X86-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -482,7 +482,7 @@ define void @test_mm_2intersect_epi32_b(ptr nocapture readonly %a, ptr nocapture
482482
;
483483
; X64-LABEL: test_mm_2intersect_epi32_b:
484484
; X64: # %bb.0: # %entry
485-
; X64-NEXT: vbroadcastss (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x18,0x07]
485+
; X64-NEXT: vpbroadcastd (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x58,0x07]
486486
; X64-NEXT: vp2intersectd (%rsi){1to4}, %xmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x18,0x68,0x06]
487487
; X64-NEXT: kshiftlw $12, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0c]
488488
; X64-NEXT: kshiftrw $12, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0c]
@@ -522,8 +522,7 @@ define void @test_mm_2intersect_epi64_b(ptr nocapture readonly %a, ptr nocapture
522522
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
523523
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
524524
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
525-
; X86-NEXT: vmovddup (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x12,0x06]
526-
; X86-NEXT: # xmm0 = mem[0,0]
525+
; X86-NEXT: vpbroadcastq (%esi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x59,0x06]
527526
; X86-NEXT: vp2intersectq (%edx){1to2}, %xmm0, %k0 # encoding: [0x62,0xf2,0xff,0x18,0x68,0x02]
528527
; X86-NEXT: kshiftlw $14, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0e]
529528
; X86-NEXT: kshiftrw $14, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0e]
@@ -539,8 +538,7 @@ define void @test_mm_2intersect_epi64_b(ptr nocapture readonly %a, ptr nocapture
539538
;
540539
; X64-LABEL: test_mm_2intersect_epi64_b:
541540
; X64: # %bb.0: # %entry
542-
; X64-NEXT: vmovddup (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc5,0xfb,0x12,0x07]
543-
; X64-NEXT: # xmm0 = mem[0,0]
541+
; X64-NEXT: vpbroadcastq (%rdi), %xmm0 # EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x59,0x07]
544542
; X64-NEXT: vp2intersectq (%rsi){1to2}, %xmm0, %k0 # encoding: [0x62,0xf2,0xff,0x18,0x68,0x06]
545543
; X64-NEXT: kshiftlw $14, %k0, %k2 # encoding: [0xc4,0xe3,0xf9,0x32,0xd0,0x0e]
546544
; X64-NEXT: kshiftrw $14, %k2, %k2 # encoding: [0xc4,0xe3,0xf9,0x30,0xd2,0x0e]

llvm/test/CodeGen/X86/avx512vp2intersect-intrinsics.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ define void @test_mm512_2intersect_epi32_p(ptr nocapture readonly %a, ptr nocapt
7272
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
7373
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
7474
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
75-
; X86-NEXT: vmovaps (%esi), %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0x06]
75+
; X86-NEXT: vmovdqa64 (%esi), %zmm0 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0x06]
7676
; X86-NEXT: vp2intersectd (%edx), %zmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x48,0x68,0x02]
7777
; X86-NEXT: kmovw %k0, (%ecx) # encoding: [0xc5,0xf8,0x91,0x01]
7878
; X86-NEXT: kmovw %k1, (%eax) # encoding: [0xc5,0xf8,0x91,0x08]
@@ -83,7 +83,7 @@ define void @test_mm512_2intersect_epi32_p(ptr nocapture readonly %a, ptr nocapt
8383
;
8484
; X64-LABEL: test_mm512_2intersect_epi32_p:
8585
; X64: # %bb.0: # %entry
86-
; X64-NEXT: vmovaps (%rdi), %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0x07]
86+
; X64-NEXT: vmovdqa64 (%rdi), %zmm0 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0x07]
8787
; X64-NEXT: vp2intersectd (%rsi), %zmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x48,0x68,0x06]
8888
; X64-NEXT: kmovw %k0, (%rdx) # encoding: [0xc5,0xf8,0x91,0x02]
8989
; X64-NEXT: kmovw %k1, (%rcx) # encoding: [0xc5,0xf8,0x91,0x09]
@@ -106,7 +106,7 @@ define void @test_mm512_2intersect_epi64_p(ptr nocapture readonly %a, ptr nocapt
106106
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x0c]
107107
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x08]
108108
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04]
109-
; X86-NEXT: vmovaps (%edx), %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0x02]
109+
; X86-NEXT: vmovdqa64 (%edx), %zmm0 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0x02]
110110
; X86-NEXT: vp2intersectq (%ecx), %zmm0, %k0 # encoding: [0x62,0xf2,0xff,0x48,0x68,0x01]
111111
; X86-NEXT: kmovw %k1, %ecx # encoding: [0xc5,0xf8,0x93,0xc9]
112112
; X86-NEXT: kmovw %k0, %edx # encoding: [0xc5,0xf8,0x93,0xd0]
@@ -118,7 +118,7 @@ define void @test_mm512_2intersect_epi64_p(ptr nocapture readonly %a, ptr nocapt
118118
;
119119
; X64-LABEL: test_mm512_2intersect_epi64_p:
120120
; X64: # %bb.0: # %entry
121-
; X64-NEXT: vmovaps (%rdi), %zmm0 # encoding: [0x62,0xf1,0x7c,0x48,0x28,0x07]
121+
; X64-NEXT: vmovdqa64 (%rdi), %zmm0 # encoding: [0x62,0xf1,0xfd,0x48,0x6f,0x07]
122122
; X64-NEXT: vp2intersectq (%rsi), %zmm0, %k0 # encoding: [0x62,0xf2,0xff,0x48,0x68,0x06]
123123
; X64-NEXT: kmovw %k1, %eax # encoding: [0xc5,0xf8,0x93,0xc1]
124124
; X64-NEXT: kmovw %k0, %esi # encoding: [0xc5,0xf8,0x93,0xf0]
@@ -148,7 +148,7 @@ define void @test_mm512_2intersect_epi32_b(ptr nocapture readonly %a, ptr nocapt
148148
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x10]
149149
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x0c]
150150
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi # encoding: [0x8b,0x74,0x24,0x08]
151-
; X86-NEXT: vbroadcastss (%esi), %zmm0 # encoding: [0x62,0xf2,0x7d,0x48,0x18,0x06]
151+
; X86-NEXT: vpbroadcastd (%esi), %zmm0 # encoding: [0x62,0xf2,0x7d,0x48,0x58,0x06]
152152
; X86-NEXT: vp2intersectd (%edx){1to16}, %zmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x58,0x68,0x02]
153153
; X86-NEXT: kmovw %k0, (%ecx) # encoding: [0xc5,0xf8,0x91,0x01]
154154
; X86-NEXT: kmovw %k1, (%eax) # encoding: [0xc5,0xf8,0x91,0x08]
@@ -159,7 +159,7 @@ define void @test_mm512_2intersect_epi32_b(ptr nocapture readonly %a, ptr nocapt
159159
;
160160
; X64-LABEL: test_mm512_2intersect_epi32_b:
161161
; X64: # %bb.0: # %entry
162-
; X64-NEXT: vbroadcastss (%rdi), %zmm0 # encoding: [0x62,0xf2,0x7d,0x48,0x18,0x07]
162+
; X64-NEXT: vpbroadcastd (%rdi), %zmm0 # encoding: [0x62,0xf2,0x7d,0x48,0x58,0x07]
163163
; X64-NEXT: vp2intersectd (%rsi){1to16}, %zmm0, %k0 # encoding: [0x62,0xf2,0x7f,0x58,0x68,0x06]
164164
; X64-NEXT: kmovw %k0, (%rdx) # encoding: [0xc5,0xf8,0x91,0x02]
165165
; X64-NEXT: kmovw %k1, (%rcx) # encoding: [0xc5,0xf8,0x91,0x09]
@@ -186,7 +186,7 @@ define void @test_mm512_2intersect_epi64_b(ptr nocapture readonly %a, ptr nocapt
186186
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x0c]
187187
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x08]
188188
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx # encoding: [0x8b,0x54,0x24,0x04]
189-
; X86-NEXT: vbroadcastsd (%edx), %zmm0 # encoding: [0x62,0xf2,0xfd,0x48,0x19,0x02]
189+
; X86-NEXT: vpbroadcastq (%edx), %zmm0 # encoding: [0x62,0xf2,0xfd,0x48,0x59,0x02]
190190
; X86-NEXT: vp2intersectq (%ecx){1to8}, %zmm0, %k0 # encoding: [0x62,0xf2,0xff,0x58,0x68,0x01]
191191
; X86-NEXT: kmovw %k1, %ecx # encoding: [0xc5,0xf8,0x93,0xc9]
192192
; X86-NEXT: kmovw %k0, %edx # encoding: [0xc5,0xf8,0x93,0xd0]
@@ -198,7 +198,7 @@ define void @test_mm512_2intersect_epi64_b(ptr nocapture readonly %a, ptr nocapt
198198
;
199199
; X64-LABEL: test_mm512_2intersect_epi64_b:
200200
; X64: # %bb.0: # %entry
201-
; X64-NEXT: vbroadcastsd (%rdi), %zmm0 # encoding: [0x62,0xf2,0xfd,0x48,0x19,0x07]
201+
; X64-NEXT: vpbroadcastq (%rdi), %zmm0 # encoding: [0x62,0xf2,0xfd,0x48,0x59,0x07]
202202
; X64-NEXT: vp2intersectq (%rsi){1to8}, %zmm0, %k0 # encoding: [0x62,0xf2,0xff,0x58,0x68,0x06]
203203
; X64-NEXT: kmovw %k1, %eax # encoding: [0xc5,0xf8,0x93,0xc1]
204204
; X64-NEXT: kmovw %k0, %esi # encoding: [0xc5,0xf8,0x93,0xf0]

llvm/test/CodeGen/X86/stack-folding-avx512vp2intersect.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ define void @stack_fold_vp2intersectd(ptr %a, <16 x i32> %b, ptr nocapture %m0,
1111
; CHECK-NEXT: #APP
1212
; CHECK-NEXT: nop
1313
; CHECK-NEXT: #NO_APP
14-
; CHECK-NEXT: vmovaps (%rdi), %zmm0
14+
; CHECK-NEXT: vmovdqa64 (%rdi), %zmm0
1515
; CHECK-NEXT: vp2intersectd {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %k0 # 64-byte Folded Reload
1616
; CHECK-NEXT: kmovw %k0, (%rsi)
1717
; CHECK-NEXT: kmovw %k1, (%rdx)
@@ -35,7 +35,7 @@ define void @stack_fold_vp2intersectq(ptr %a, <8 x i64> %b, ptr nocapture %m0, p
3535
; CHECK-NEXT: #APP
3636
; CHECK-NEXT: nop
3737
; CHECK-NEXT: #NO_APP
38-
; CHECK-NEXT: vmovaps (%rdi), %zmm0
38+
; CHECK-NEXT: vmovdqa64 (%rdi), %zmm0
3939
; CHECK-NEXT: vp2intersectq {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %k0 # 64-byte Folded Reload
4040
; CHECK-NEXT: kmovw %k1, %eax
4141
; CHECK-NEXT: kmovw %k0, %ecx
@@ -61,7 +61,7 @@ define void @stack_fold_vp2intersectd_256(ptr %a, <8 x i32> %b, ptr nocapture %m
6161
; CHECK-NEXT: #APP
6262
; CHECK-NEXT: nop
6363
; CHECK-NEXT: #NO_APP
64-
; CHECK-NEXT: vmovaps (%rdi), %ymm0
64+
; CHECK-NEXT: vmovdqa (%rdi), %ymm0
6565
; CHECK-NEXT: vp2intersectd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %k0 # 32-byte Folded Reload
6666
; CHECK-NEXT: kmovw %k1, %eax
6767
; CHECK-NEXT: kmovw %k0, %ecx
@@ -87,7 +87,7 @@ define void @stack_fold_vp2intersectq_256(ptr %a, <4 x i64> %b, ptr nocapture %m
8787
; CHECK-NEXT: #APP
8888
; CHECK-NEXT: nop
8989
; CHECK-NEXT: #NO_APP
90-
; CHECK-NEXT: vmovaps (%rdi), %ymm0
90+
; CHECK-NEXT: vmovdqa (%rdi), %ymm0
9191
; CHECK-NEXT: vp2intersectq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %k0 # 32-byte Folded Reload
9292
; CHECK-NEXT: kshiftlw $12, %k0, %k2
9393
; CHECK-NEXT: kshiftrw $12, %k2, %k2
@@ -117,7 +117,7 @@ define void @stack_fold_vp2intersectd_128(ptr %a, <4 x i32> %b, ptr nocapture %m
117117
; CHECK-NEXT: #APP
118118
; CHECK-NEXT: nop
119119
; CHECK-NEXT: #NO_APP
120-
; CHECK-NEXT: vmovaps (%rdi), %xmm0
120+
; CHECK-NEXT: vmovdqa (%rdi), %xmm0
121121
; CHECK-NEXT: vp2intersectd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %k0 # 16-byte Folded Reload
122122
; CHECK-NEXT: kshiftlw $12, %k0, %k2
123123
; CHECK-NEXT: kshiftrw $12, %k2, %k2
@@ -146,7 +146,7 @@ define void @stack_fold_vp2intersectq_128(ptr %a, <2 x i64> %b, ptr nocapture %m
146146
; CHECK-NEXT: #APP
147147
; CHECK-NEXT: nop
148148
; CHECK-NEXT: #NO_APP
149-
; CHECK-NEXT: vmovaps (%rdi), %xmm0
149+
; CHECK-NEXT: vmovdqa (%rdi), %xmm0
150150
; CHECK-NEXT: vp2intersectq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %k0 # 16-byte Folded Reload
151151
; CHECK-NEXT: kshiftlw $14, %k0, %k2
152152
; CHECK-NEXT: kshiftrw $14, %k2, %k2

0 commit comments

Comments
 (0)