11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2- ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=X32
2+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=X86
33; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=X64
44
55declare <4 x float > @llvm.x86.avx2.gather.d.ps (<4 x float >, ptr ,
66 <4 x i32 >, <4 x float >, i8 ) nounwind readonly
77
88define <4 x float > @test_x86_avx2_gather_d_ps (ptr %a1 , <4 x i32 > %idx , <4 x float > %mask ) {
9- ; X32 -LABEL: test_x86_avx2_gather_d_ps:
10- ; X32 : # %bb.0:
11- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
12- ; X32 -NEXT: vxorps %xmm2, %xmm2, %xmm2
13- ; X32 -NEXT: vgatherdps %xmm1, (%eax,%xmm0,2), %xmm2
14- ; X32 -NEXT: vmovaps %xmm2, %xmm0
15- ; X32 -NEXT: retl
9+ ; X86 -LABEL: test_x86_avx2_gather_d_ps:
10+ ; X86 : # %bb.0:
11+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
12+ ; X86 -NEXT: vxorps %xmm2, %xmm2, %xmm2
13+ ; X86 -NEXT: vgatherdps %xmm1, (%eax,%xmm0,2), %xmm2
14+ ; X86 -NEXT: vmovaps %xmm2, %xmm0
15+ ; X86 -NEXT: retl
1616;
1717; X64-LABEL: test_x86_avx2_gather_d_ps:
1818; X64: # %bb.0:
@@ -29,13 +29,13 @@ declare <2 x double> @llvm.x86.avx2.gather.d.pd(<2 x double>, ptr,
2929 <4 x i32 >, <2 x double >, i8 ) nounwind readonly
3030
3131define <2 x double > @test_x86_avx2_gather_d_pd (ptr %a1 , <4 x i32 > %idx , <2 x double > %mask ) {
32- ; X32 -LABEL: test_x86_avx2_gather_d_pd:
33- ; X32 : # %bb.0:
34- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
35- ; X32 -NEXT: vxorpd %xmm2, %xmm2, %xmm2
36- ; X32 -NEXT: vgatherdpd %xmm1, (%eax,%xmm0,2), %xmm2
37- ; X32 -NEXT: vmovapd %xmm2, %xmm0
38- ; X32 -NEXT: retl
32+ ; X86 -LABEL: test_x86_avx2_gather_d_pd:
33+ ; X86 : # %bb.0:
34+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
35+ ; X86 -NEXT: vxorpd %xmm2, %xmm2, %xmm2
36+ ; X86 -NEXT: vgatherdpd %xmm1, (%eax,%xmm0,2), %xmm2
37+ ; X86 -NEXT: vmovapd %xmm2, %xmm0
38+ ; X86 -NEXT: retl
3939;
4040; X64-LABEL: test_x86_avx2_gather_d_pd:
4141; X64: # %bb.0:
@@ -52,13 +52,13 @@ declare <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float>, ptr,
5252 <8 x i32 >, <8 x float >, i8 ) nounwind readonly
5353
5454define <8 x float > @test_x86_avx2_gather_d_ps_256 (ptr %a1 , <8 x i32 > %idx , <8 x float > %mask ) {
55- ; X32 -LABEL: test_x86_avx2_gather_d_ps_256:
56- ; X32 : # %bb.0:
57- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
58- ; X32 -NEXT: vxorps %xmm2, %xmm2, %xmm2
59- ; X32 -NEXT: vgatherdps %ymm1, (%eax,%ymm0,4), %ymm2
60- ; X32 -NEXT: vmovaps %ymm2, %ymm0
61- ; X32 -NEXT: retl
55+ ; X86 -LABEL: test_x86_avx2_gather_d_ps_256:
56+ ; X86 : # %bb.0:
57+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
58+ ; X86 -NEXT: vxorps %xmm2, %xmm2, %xmm2
59+ ; X86 -NEXT: vgatherdps %ymm1, (%eax,%ymm0,4), %ymm2
60+ ; X86 -NEXT: vmovaps %ymm2, %ymm0
61+ ; X86 -NEXT: retl
6262;
6363; X64-LABEL: test_x86_avx2_gather_d_ps_256:
6464; X64: # %bb.0:
@@ -75,13 +75,13 @@ declare <4 x double> @llvm.x86.avx2.gather.d.pd.256(<4 x double>, ptr,
7575 <4 x i32 >, <4 x double >, i8 ) nounwind readonly
7676
7777define <4 x double > @test_x86_avx2_gather_d_pd_256 (ptr %a1 , <4 x i32 > %idx , <4 x double > %mask ) {
78- ; X32 -LABEL: test_x86_avx2_gather_d_pd_256:
79- ; X32 : # %bb.0:
80- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
81- ; X32 -NEXT: vxorpd %xmm2, %xmm2, %xmm2
82- ; X32 -NEXT: vgatherdpd %ymm1, (%eax,%xmm0,8), %ymm2
83- ; X32 -NEXT: vmovapd %ymm2, %ymm0
84- ; X32 -NEXT: retl
78+ ; X86 -LABEL: test_x86_avx2_gather_d_pd_256:
79+ ; X86 : # %bb.0:
80+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
81+ ; X86 -NEXT: vxorpd %xmm2, %xmm2, %xmm2
82+ ; X86 -NEXT: vgatherdpd %ymm1, (%eax,%xmm0,8), %ymm2
83+ ; X86 -NEXT: vmovapd %ymm2, %ymm0
84+ ; X86 -NEXT: retl
8585;
8686; X64-LABEL: test_x86_avx2_gather_d_pd_256:
8787; X64: # %bb.0:
@@ -95,14 +95,14 @@ define <4 x double> @test_x86_avx2_gather_d_pd_256(ptr %a1, <4 x i32> %idx, <4 x
9595}
9696
9797define <2 x i64 > @test_mm_i32gather_epi32 (ptr %a0 , <2 x i64 > %a1 ) {
98- ; X32 -LABEL: test_mm_i32gather_epi32:
99- ; X32 : # %bb.0:
100- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
101- ; X32 -NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
102- ; X32 -NEXT: vpxor %xmm1, %xmm1, %xmm1
103- ; X32 -NEXT: vpgatherdd %xmm2, (%eax,%xmm0,2), %xmm1
104- ; X32 -NEXT: vmovdqa %xmm1, %xmm0
105- ; X32 -NEXT: retl
98+ ; X86 -LABEL: test_mm_i32gather_epi32:
99+ ; X86 : # %bb.0:
100+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
101+ ; X86 -NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
102+ ; X86 -NEXT: vpxor %xmm1, %xmm1, %xmm1
103+ ; X86 -NEXT: vpgatherdd %xmm2, (%eax,%xmm0,2), %xmm1
104+ ; X86 -NEXT: vmovdqa %xmm1, %xmm0
105+ ; X86 -NEXT: retl
106106;
107107; X64-LABEL: test_mm_i32gather_epi32:
108108; X64: # %bb.0:
@@ -121,14 +121,14 @@ define <2 x i64> @test_mm_i32gather_epi32(ptr%a0, <2 x i64> %a1) {
121121declare <4 x i32 > @llvm.x86.avx2.gather.d.d (<4 x i32 >, ptr , <4 x i32 >, <4 x i32 >, i8 ) nounwind readonly
122122
123123define <2 x double > @test_mm_i32gather_pd (ptr %a0 , <2 x i64 > %a1 ) {
124- ; X32 -LABEL: test_mm_i32gather_pd:
125- ; X32 : # %bb.0:
126- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
127- ; X32 -NEXT: vxorpd %xmm1, %xmm1, %xmm1
128- ; X32 -NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
129- ; X32 -NEXT: vgatherdpd %xmm2, (%eax,%xmm0,2), %xmm1
130- ; X32 -NEXT: vmovapd %xmm1, %xmm0
131- ; X32 -NEXT: retl
124+ ; X86 -LABEL: test_mm_i32gather_pd:
125+ ; X86 : # %bb.0:
126+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
127+ ; X86 -NEXT: vxorpd %xmm1, %xmm1, %xmm1
128+ ; X86 -NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
129+ ; X86 -NEXT: vgatherdpd %xmm2, (%eax,%xmm0,2), %xmm1
130+ ; X86 -NEXT: vmovapd %xmm1, %xmm0
131+ ; X86 -NEXT: retl
132132;
133133; X64-LABEL: test_mm_i32gather_pd:
134134; X64: # %bb.0:
@@ -149,14 +149,14 @@ define <2 x double> @test_mm_i32gather_pd(ptr%a0, <2 x i64> %a1) {
149149@x = dso_local global [1024 x float ] zeroinitializer , align 16
150150
151151define <4 x float > @gather_global (<4 x i64 >, ptr nocapture readnone ) {
152- ; X32 -LABEL: gather_global:
153- ; X32 : # %bb.0:
154- ; X32 -NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
155- ; X32 -NEXT: vxorps %xmm1, %xmm1, %xmm1
156- ; X32 -NEXT: vgatherqps %xmm2, x(,%ymm0,4), %xmm1
157- ; X32 -NEXT: vmovaps %xmm1, %xmm0
158- ; X32 -NEXT: vzeroupper
159- ; X32 -NEXT: retl
152+ ; X86 -LABEL: gather_global:
153+ ; X86 : # %bb.0:
154+ ; X86 -NEXT: vpcmpeqd %xmm2, %xmm2, %xmm2
155+ ; X86 -NEXT: vxorps %xmm1, %xmm1, %xmm1
156+ ; X86 -NEXT: vgatherqps %xmm2, x(,%ymm0,4), %xmm1
157+ ; X86 -NEXT: vmovaps %xmm1, %xmm0
158+ ; X86 -NEXT: vzeroupper
159+ ; X86 -NEXT: retl
160160;
161161; X64-LABEL: gather_global:
162162; X64: # %bb.0:
0 commit comments