@@ -1238,18 +1238,18 @@ define void @mul_16xi16_sext(ptr nocapture readonly %a, ptr nocapture readonly %
12381238; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax
12391239; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %esi
12401240; X86-AVX1-NEXT: movl c, %ecx
1241- ; X86-AVX1-NEXT: vpmovsxwd 24(%esi,%eax), % xmm0
1242- ; X86-AVX1-NEXT: vpmovsxwd 16(%esi,%eax), % xmm1
1243- ; X86-AVX1-NEXT: vpmovsxwd 8(%esi,%eax), % xmm2
1244- ; X86-AVX1-NEXT: vpmovsxwd (%esi,%eax), % xmm3
1245- ; X86-AVX1-NEXT: vpmovsxwd 24(%edx,%eax), % xmm4
1246- ; X86-AVX1-NEXT: vpmulld %xmm0, %xmm4, %xmm0
1247- ; X86-AVX1-NEXT: vpmovsxwd 16(%edx,%eax), % xmm4
1248- ; X86-AVX1-NEXT: vpmulld %xmm1, %xmm4, %xmm1
1249- ; X86-AVX1-NEXT: vpmovsxwd 8(%edx,%eax), % xmm4
1250- ; X86-AVX1-NEXT: vpmulld %xmm2, %xmm4, %xmm2
1251- ; X86-AVX1-NEXT: vpmovsxwd (%edx,%eax), % xmm4
1252- ; X86-AVX1-NEXT: vpmulld %xmm3, %xmm4, %xmm3
1241+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1242+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1243+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1244+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm3 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1245+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1246+ ; X86-AVX1-NEXT: vpmaddwd %xmm0, %xmm4, %xmm0
1247+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1248+ ; X86-AVX1-NEXT: vpmaddwd %xmm1, %xmm4, %xmm1
1249+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1250+ ; X86-AVX1-NEXT: vpmaddwd %xmm2, %xmm4, %xmm2
1251+ ; X86-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1252+ ; X86-AVX1-NEXT: vpmaddwd %xmm3, %xmm4, %xmm3
12531253; X86-AVX1-NEXT: vmovdqu %xmm0, 48(%ecx,%eax,4)
12541254; X86-AVX1-NEXT: vmovdqu %xmm1, 32(%ecx,%eax,4)
12551255; X86-AVX1-NEXT: vmovdqu %xmm2, 16(%ecx,%eax,4)
@@ -1264,12 +1264,12 @@ define void @mul_16xi16_sext(ptr nocapture readonly %a, ptr nocapture readonly %
12641264; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %ecx
12651265; X86-AVX2-NEXT: movl {{[0-9]+}}(%esp), %edx
12661266; X86-AVX2-NEXT: movl c, %esi
1267- ; X86-AVX2-NEXT: vpmovsxwd 16(%edx,%ecx), % ymm0
1268- ; X86-AVX2-NEXT: vpmovsxwd (%edx,%ecx), % ymm1
1269- ; X86-AVX2-NEXT: vpmovsxwd 16(%eax,%ecx), % ymm2
1270- ; X86-AVX2-NEXT: vpmulld %ymm0, %ymm2, %ymm0
1271- ; X86-AVX2-NEXT: vpmovsxwd (%eax,%ecx), % ymm2
1272- ; X86-AVX2-NEXT: vpmulld %ymm1, %ymm2, %ymm1
1267+ ; X86-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1268+ ; X86-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1269+ ; X86-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1270+ ; X86-AVX2-NEXT: vpmaddwd %ymm0, %ymm2, %ymm0
1271+ ; X86-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1272+ ; X86-AVX2-NEXT: vpmaddwd %ymm1, %ymm2, %ymm1
12731273; X86-AVX2-NEXT: vmovdqu %ymm0, 32(%esi,%ecx,4)
12741274; X86-AVX2-NEXT: vmovdqu %ymm1, (%esi,%ecx,4)
12751275; X86-AVX2-NEXT: popl %esi
@@ -1304,18 +1304,18 @@ define void @mul_16xi16_sext(ptr nocapture readonly %a, ptr nocapture readonly %
13041304; X64-AVX1-LABEL: mul_16xi16_sext:
13051305; X64-AVX1: # %bb.0: # %entry
13061306; X64-AVX1-NEXT: movq c(%rip), %rax
1307- ; X64-AVX1-NEXT: vpmovsxwd 24(%rdi,%rdx), % xmm0
1308- ; X64-AVX1-NEXT: vpmovsxwd 16(%rdi,%rdx), % xmm1
1309- ; X64-AVX1-NEXT: vpmovsxwd 8(%rdi,%rdx), % xmm2
1310- ; X64-AVX1-NEXT: vpmovsxwd (%rdi,%rdx), % xmm3
1311- ; X64-AVX1-NEXT: vpmovsxwd 24(%rsi,%rdx), % xmm4
1312- ; X64-AVX1-NEXT: vpmulld %xmm0, %xmm4, %xmm0
1313- ; X64-AVX1-NEXT: vpmovsxwd 16(%rsi,%rdx), % xmm4
1314- ; X64-AVX1-NEXT: vpmulld %xmm1, %xmm4, %xmm1
1315- ; X64-AVX1-NEXT: vpmovsxwd 8(%rsi,%rdx), % xmm4
1316- ; X64-AVX1-NEXT: vpmulld %xmm2, %xmm4, %xmm2
1317- ; X64-AVX1-NEXT: vpmovsxwd (%rsi,%rdx), % xmm4
1318- ; X64-AVX1-NEXT: vpmulld %xmm3, %xmm4, %xmm3
1307+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1308+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1309+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1310+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm3 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1311+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1312+ ; X64-AVX1-NEXT: vpmaddwd %xmm0, %xmm4, %xmm0
1313+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1314+ ; X64-AVX1-NEXT: vpmaddwd %xmm1, %xmm4, %xmm1
1315+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1316+ ; X64-AVX1-NEXT: vpmaddwd %xmm2, %xmm4, %xmm2
1317+ ; X64-AVX1-NEXT: vpmovzxwd {{.*#+}} xmm4 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
1318+ ; X64-AVX1-NEXT: vpmaddwd %xmm3, %xmm4, %xmm3
13191319; X64-AVX1-NEXT: vmovdqu %xmm0, 48(%rax,%rdx,4)
13201320; X64-AVX1-NEXT: vmovdqu %xmm1, 32(%rax,%rdx,4)
13211321; X64-AVX1-NEXT: vmovdqu %xmm2, 16(%rax,%rdx,4)
@@ -1325,12 +1325,12 @@ define void @mul_16xi16_sext(ptr nocapture readonly %a, ptr nocapture readonly %
13251325; X64-AVX2-LABEL: mul_16xi16_sext:
13261326; X64-AVX2: # %bb.0: # %entry
13271327; X64-AVX2-NEXT: movq c(%rip), %rax
1328- ; X64-AVX2-NEXT: vpmovsxwd 16(%rdi,%rdx), % ymm0
1329- ; X64-AVX2-NEXT: vpmovsxwd (%rdi,%rdx), % ymm1
1330- ; X64-AVX2-NEXT: vpmovsxwd 16(%rsi,%rdx), % ymm2
1331- ; X64-AVX2-NEXT: vpmulld %ymm0, %ymm2, %ymm0
1332- ; X64-AVX2-NEXT: vpmovsxwd (%rsi,%rdx), % ymm2
1333- ; X64-AVX2-NEXT: vpmulld %ymm1, %ymm2, %ymm1
1328+ ; X64-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1329+ ; X64-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1330+ ; X64-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1331+ ; X64-AVX2-NEXT: vpmaddwd %ymm0, %ymm2, %ymm0
1332+ ; X64-AVX2-NEXT: vpmovzxwd {{.*#+}} ymm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero,mem[4],zero,mem[5],zero,mem[6],zero,mem[7],zero
1333+ ; X64-AVX2-NEXT: vpmaddwd %ymm1, %ymm2, %ymm1
13341334; X64-AVX2-NEXT: vmovdqu %ymm0, 32(%rax,%rdx,4)
13351335; X64-AVX2-NEXT: vmovdqu %ymm1, (%rax,%rdx,4)
13361336; X64-AVX2-NEXT: vzeroupper
0 commit comments