Skip to content

Commit 4f5e646

Browse files
RKSimonagozillon
authored andcommitted
[X86] addConstantComments - add FP16 MOVSH asm comments support
1 parent 5872c06 commit 4f5e646

File tree

4 files changed

+60
-48
lines changed

4 files changed

+60
-48
lines changed

llvm/lib/Target/X86/X86MCInstLower.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,6 +1875,12 @@ static void addConstantComments(const MachineInstr *MI,
18751875
printZeroUpperMove(MI, OutStreamer, 64, 128, "mem[0],zero");
18761876
break;
18771877

1878+
MASK_AVX512_CASE(X86::VMOVSHZrm)
1879+
case X86::VMOVSHZrm_alt:
1880+
printZeroUpperMove(MI, OutStreamer, 16, 128,
1881+
"mem[0],zero,zero,zero,zero,zero,zero,zero");
1882+
break;
1883+
18781884
case X86::MOVSSrm:
18791885
case X86::VMOVSSrm:
18801886
MASK_AVX512_CASE(X86::VMOVSSZrm)

llvm/test/CodeGen/X86/avx512fp16-fma-intrinsics.ll

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -531,17 +531,21 @@ define void @fmadd_sh_mask_memfold(ptr %a, ptr %b, i8 %c) {
531531
; X86-NEXT: kmovb {{[0-9]+}}(%esp), %k1 # encoding: [0xc5,0xf9,0x90,0x4c,0x24,0x0c]
532532
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax # encoding: [0x8b,0x44,0x24,0x08]
533533
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx # encoding: [0x8b,0x4c,0x24,0x04]
534-
; X86-NEXT: vmovsh (%ecx), %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x01]
535-
; X86-NEXT: vmovsh (%eax), %xmm1 # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x08]
534+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
535+
; X86-NEXT: # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x01]
536+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
537+
; X86-NEXT: # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x08]
536538
; X86-NEXT: vfmadd213sh %xmm0, %xmm0, %xmm1 # encoding: [0x62,0xf6,0x7d,0x08,0xa9,0xc8]
537539
; X86-NEXT: vmovsh %xmm1, %xmm0, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x10,0xc1]
538540
; X86-NEXT: vmovsh %xmm0, (%ecx) # encoding: [0x62,0xf5,0x7e,0x08,0x11,0x01]
539541
; X86-NEXT: retl # encoding: [0xc3]
540542
;
541543
; X64-LABEL: fmadd_sh_mask_memfold:
542544
; X64: # %bb.0:
543-
; X64-NEXT: vmovsh (%rdi), %xmm0 # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x07]
544-
; X64-NEXT: vmovsh (%rsi), %xmm1 # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x0e]
545+
; X64-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
546+
; X64-NEXT: # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x07]
547+
; X64-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
548+
; X64-NEXT: # encoding: [0x62,0xf5,0x7e,0x08,0x10,0x0e]
545549
; X64-NEXT: vfmadd213sh %xmm0, %xmm0, %xmm1 # encoding: [0x62,0xf6,0x7d,0x08,0xa9,0xc8]
546550
; X64-NEXT: kmovd %edx, %k1 # encoding: [0xc5,0xfb,0x92,0xca]
547551
; X64-NEXT: vmovsh %xmm1, %xmm0, %xmm0 {%k1} # encoding: [0x62,0xf5,0x7e,0x09,0x10,0xc1]

llvm/test/CodeGen/X86/avx512fp16-mov.ll

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ define void @test5(half %x, ptr %y) {
178178
;
179179
; X86-LABEL: test5:
180180
; X86: # %bb.0:
181-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
181+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
182182
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
183183
; X86-NEXT: vmovsh %xmm0, (%eax)
184184
; X86-NEXT: retl
@@ -189,13 +189,13 @@ define void @test5(half %x, ptr %y) {
189189
define half @test7(ptr %x) {
190190
; X64-LABEL: test7:
191191
; X64: # %bb.0:
192-
; X64-NEXT: vmovsh (%rdi), %xmm0
192+
; X64-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
193193
; X64-NEXT: retq
194194
;
195195
; X86-LABEL: test7:
196196
; X86: # %bb.0:
197197
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
198-
; X86-NEXT: vmovsh (%eax), %xmm0
198+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
199199
; X86-NEXT: retl
200200
%y = load i16, ptr %x
201201
%res = bitcast i16 %y to half
@@ -253,13 +253,13 @@ define <32 x i16> @test10c(ptr %x) {
253253
define <8 x half> @test11(ptr %x) {
254254
; X64-LABEL: test11:
255255
; X64: # %bb.0:
256-
; X64-NEXT: vmovsh (%rdi), %xmm0
256+
; X64-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
257257
; X64-NEXT: retq
258258
;
259259
; X86-LABEL: test11:
260260
; X86: # %bb.0:
261261
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
262-
; X86-NEXT: vmovsh (%eax), %xmm0
262+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
263263
; X86-NEXT: retl
264264
%y = load half, ptr %x, align 2
265265
%res = insertelement <8 x half>zeroinitializer, half %y, i32 0
@@ -269,13 +269,13 @@ define <8 x half> @test11(ptr %x) {
269269
define <16 x half> @test11b(ptr %x) {
270270
; X64-LABEL: test11b:
271271
; X64: # %bb.0:
272-
; X64-NEXT: vmovsh (%rdi), %xmm0
272+
; X64-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
273273
; X64-NEXT: retq
274274
;
275275
; X86-LABEL: test11b:
276276
; X86: # %bb.0:
277277
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
278-
; X86-NEXT: vmovsh (%eax), %xmm0
278+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
279279
; X86-NEXT: retl
280280
%y = load half, ptr %x, align 2
281281
%res = insertelement <16 x half>zeroinitializer, half %y, i32 0
@@ -285,13 +285,13 @@ define <16 x half> @test11b(ptr %x) {
285285
define <32 x half> @test11c(ptr %x) {
286286
; X64-LABEL: test11c:
287287
; X64: # %bb.0:
288-
; X64-NEXT: vmovsh (%rdi), %xmm0
288+
; X64-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
289289
; X64-NEXT: retq
290290
;
291291
; X86-LABEL: test11c:
292292
; X86: # %bb.0:
293293
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
294-
; X86-NEXT: vmovsh (%eax), %xmm0
294+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
295295
; X86-NEXT: retl
296296
%y = load half, ptr %x, align 2
297297
%res = insertelement <32 x half>zeroinitializer, half %y, i32 0
@@ -307,7 +307,7 @@ define <8 x half> @test14(half %x) {
307307
;
308308
; X86-LABEL: test14:
309309
; X86: # %bb.0:
310-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
310+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
311311
; X86-NEXT: retl
312312
%res = insertelement <8 x half>zeroinitializer, half %x, i32 0
313313
ret <8 x half>%res
@@ -322,7 +322,7 @@ define <16 x half> @test14b(half %x) {
322322
;
323323
; X86-LABEL: test14b:
324324
; X86: # %bb.0:
325-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
325+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
326326
; X86-NEXT: retl
327327
%res = insertelement <16 x half>zeroinitializer, half %x, i32 0
328328
ret <16 x half>%res
@@ -337,7 +337,7 @@ define <32 x half> @test14c(half %x) {
337337
;
338338
; X86-LABEL: test14c:
339339
; X86: # %bb.0:
340-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
340+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
341341
; X86-NEXT: retl
342342
%res = insertelement <32 x half>zeroinitializer, half %x, i32 0
343343
ret <32 x half>%res
@@ -1253,7 +1253,7 @@ define half @test_movw2(i16 %x) {
12531253
;
12541254
; X86-LABEL: test_movw2:
12551255
; X86: # %bb.0:
1256-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
1256+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
12571257
; X86-NEXT: retl
12581258
%res = bitcast i16 %x to half
12591259
ret half %res
@@ -1358,7 +1358,7 @@ define half @extract_f16_8(<32 x half> %x, i64 %idx) nounwind {
13581358
; X64-NEXT: subq $128, %rsp
13591359
; X64-NEXT: andl $31, %edi
13601360
; X64-NEXT: vmovaps %zmm0, (%rsp)
1361-
; X64-NEXT: vmovsh (%rsp,%rdi,2), %xmm0
1361+
; X64-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
13621362
; X64-NEXT: movq %rbp, %rsp
13631363
; X64-NEXT: popq %rbp
13641364
; X64-NEXT: vzeroupper
@@ -1373,7 +1373,7 @@ define half @extract_f16_8(<32 x half> %x, i64 %idx) nounwind {
13731373
; X86-NEXT: movl 8(%ebp), %eax
13741374
; X86-NEXT: andl $31, %eax
13751375
; X86-NEXT: vmovaps %zmm0, (%esp)
1376-
; X86-NEXT: vmovsh (%esp,%eax,2), %xmm0
1376+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
13771377
; X86-NEXT: movl %ebp, %esp
13781378
; X86-NEXT: popl %ebp
13791379
; X86-NEXT: vzeroupper
@@ -1392,7 +1392,7 @@ define half @extract_f16_9(<64 x half> %x, i64 %idx) nounwind {
13921392
; X64-NEXT: andl $63, %edi
13931393
; X64-NEXT: vmovaps %zmm1, {{[0-9]+}}(%rsp)
13941394
; X64-NEXT: vmovaps %zmm0, (%rsp)
1395-
; X64-NEXT: vmovsh (%rsp,%rdi,2), %xmm0
1395+
; X64-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
13961396
; X64-NEXT: movq %rbp, %rsp
13971397
; X64-NEXT: popq %rbp
13981398
; X64-NEXT: vzeroupper
@@ -1408,7 +1408,7 @@ define half @extract_f16_9(<64 x half> %x, i64 %idx) nounwind {
14081408
; X86-NEXT: andl $63, %eax
14091409
; X86-NEXT: vmovaps %zmm1, {{[0-9]+}}(%esp)
14101410
; X86-NEXT: vmovaps %zmm0, (%esp)
1411-
; X86-NEXT: vmovsh (%esp,%eax,2), %xmm0
1411+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
14121412
; X86-NEXT: movl %ebp, %esp
14131413
; X86-NEXT: popl %ebp
14141414
; X86-NEXT: vzeroupper
@@ -1797,11 +1797,11 @@ define <8 x half> @build_vector_xxxxuuuu(half %a0, half %a1, half %a2, half %a3)
17971797
;
17981798
; X86-LABEL: build_vector_xxxxuuuu:
17991799
; X86: # %bb.0:
1800-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
1801-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1800+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
1801+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
18021802
; X86-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
1803-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1804-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1803+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
1804+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
18051805
; X86-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
18061806
; X86-NEXT: vinsertps {{.*#+}} xmm0 = xmm0[0],xmm1[0],zero,zero
18071807
; X86-NEXT: retl
@@ -1823,11 +1823,11 @@ define <8 x half> @build_vector_uuuuxxxx(half %a0, half %a1, half %a2, half %a3)
18231823
;
18241824
; X86-LABEL: build_vector_uuuuxxxx:
18251825
; X86: # %bb.0:
1826-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
1827-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1826+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
1827+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
18281828
; X86-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
1829-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1830-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1829+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
1830+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
18311831
; X86-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
18321832
; X86-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
18331833
; X86-NEXT: vpbroadcastq %xmm0, %xmm0
@@ -1853,18 +1853,18 @@ define <8 x half> @build_vector_xxxxxxxx(half %a0, half %a1, half %a2, half %a3,
18531853
;
18541854
; X86-LABEL: build_vector_xxxxxxxx:
18551855
; X86: # %bb.0:
1856-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
1857-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1856+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
1857+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
18581858
; X86-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
1859-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1860-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1859+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
1860+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
18611861
; X86-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
18621862
; X86-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1863-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1864-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1863+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
1864+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
18651865
; X86-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
1866-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1867-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm3
1866+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
1867+
; X86-NEXT: vmovsh {{.*#+}} xmm3 = mem[0],zero,zero,zero,zero,zero,zero,zero
18681868
; X86-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]
18691869
; X86-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
18701870
; X86-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
@@ -1895,18 +1895,18 @@ define <16 x half> @build_vector_xxxxuuuuuuuuxxxx(half %a0, half %a1, half %a2,
18951895
;
18961896
; X86-LABEL: build_vector_xxxxuuuuuuuuxxxx:
18971897
; X86: # %bb.0:
1898-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
1899-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1898+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
1899+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
19001900
; X86-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
1901-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1902-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1901+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
1902+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
19031903
; X86-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
19041904
; X86-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1905-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
1906-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1905+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
1906+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
19071907
; X86-NEXT: vpunpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1],xmm1[2],xmm2[2],xmm1[3],xmm2[3]
1908-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm2
1909-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm3
1908+
; X86-NEXT: vmovsh {{.*#+}} xmm2 = mem[0],zero,zero,zero,zero,zero,zero,zero
1909+
; X86-NEXT: vmovsh {{.*#+}} xmm3 = mem[0],zero,zero,zero,zero,zero,zero,zero
19101910
; X86-NEXT: vpunpcklwd {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]
19111911
; X86-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],zero,zero
19121912
; X86-NEXT: vpbroadcastq %xmm0, %xmm0
@@ -2006,10 +2006,10 @@ define <8 x half> @test21(half %a, half %b, half %c) nounwind {
20062006
;
20072007
; X86-LABEL: test21:
20082008
; X86: # %bb.0:
2009-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm0
2010-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
2009+
; X86-NEXT: vmovsh {{.*#+}} xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero
2010+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
20112011
; X86-NEXT: vpunpcklwd {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3]
2012-
; X86-NEXT: vmovsh {{[0-9]+}}(%esp), %xmm1
2012+
; X86-NEXT: vmovsh {{.*#+}} xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
20132013
; X86-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
20142014
; X86-NEXT: vpxor %xmm1, %xmm1, %xmm1
20152015
; X86-NEXT: vpbroadcastw %xmm1, %xmm1

llvm/test/CodeGen/X86/stack-folding-fp-avx512fp16.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,7 @@ define half @stack_fold_maxsh_commuted(half %a0, half %a1) #0 {
727727
; CHECK-NEXT: nop
728728
; CHECK-NEXT: #NO_APP
729729
; CHECK-NEXT: vmovsh {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
730+
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
730731
; CHECK-NEXT: vmaxsh %xmm0, %xmm1, %xmm0
731732
; CHECK-NEXT: retq
732733
%1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"()
@@ -1044,6 +1045,7 @@ define half @stack_fold_minsh_commuted(half %a0, half %a1) #0 {
10441045
; CHECK-NEXT: nop
10451046
; CHECK-NEXT: #NO_APP
10461047
; CHECK-NEXT: vmovsh {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 4-byte Reload
1048+
; CHECK-NEXT: # xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero
10471049
; CHECK-NEXT: vminsh %xmm0, %xmm1, %xmm0
10481050
; CHECK-NEXT: retq
10491051
%1 = tail call <2 x i64> asm sideeffect "nop", "=x,~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{xmm16},~{xmm17},~{xmm18},~{xmm19},~{xmm20},~{xmm21},~{xmm22},~{xmm23},~{xmm24},~{xmm25},~{xmm26},~{xmm27},~{xmm28},~{xmm29},~{xmm30},~{xmm31},~{flags}"()

0 commit comments

Comments
 (0)