1
1
; 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
3
3
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefix=X64
4
4
5
5
declare <4 x float > @llvm.x86.avx2.gather.d.ps (<4 x float >, ptr ,
6
6
<4 x i32 >, <4 x float >, i8 ) nounwind readonly
7
7
8
8
define <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
16
16
;
17
17
; X64-LABEL: test_x86_avx2_gather_d_ps:
18
18
; X64: # %bb.0:
@@ -29,13 +29,13 @@ declare <2 x double> @llvm.x86.avx2.gather.d.pd(<2 x double>, ptr,
29
29
<4 x i32 >, <2 x double >, i8 ) nounwind readonly
30
30
31
31
define <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
39
39
;
40
40
; X64-LABEL: test_x86_avx2_gather_d_pd:
41
41
; X64: # %bb.0:
@@ -52,13 +52,13 @@ declare <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float>, ptr,
52
52
<8 x i32 >, <8 x float >, i8 ) nounwind readonly
53
53
54
54
define <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
62
62
;
63
63
; X64-LABEL: test_x86_avx2_gather_d_ps_256:
64
64
; X64: # %bb.0:
@@ -75,13 +75,13 @@ declare <4 x double> @llvm.x86.avx2.gather.d.pd.256(<4 x double>, ptr,
75
75
<4 x i32 >, <4 x double >, i8 ) nounwind readonly
76
76
77
77
define <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
85
85
;
86
86
; X64-LABEL: test_x86_avx2_gather_d_pd_256:
87
87
; 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
95
95
}
96
96
97
97
define <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
106
106
;
107
107
; X64-LABEL: test_mm_i32gather_epi32:
108
108
; X64: # %bb.0:
@@ -121,14 +121,14 @@ define <2 x i64> @test_mm_i32gather_epi32(ptr%a0, <2 x i64> %a1) {
121
121
declare <4 x i32 > @llvm.x86.avx2.gather.d.d (<4 x i32 >, ptr , <4 x i32 >, <4 x i32 >, i8 ) nounwind readonly
122
122
123
123
define <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
132
132
;
133
133
; X64-LABEL: test_mm_i32gather_pd:
134
134
; X64: # %bb.0:
@@ -149,14 +149,14 @@ define <2 x double> @test_mm_i32gather_pd(ptr%a0, <2 x i64> %a1) {
149
149
@x = dso_local global [1024 x float ] zeroinitializer , align 16
150
150
151
151
define <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
160
160
;
161
161
; X64-LABEL: gather_global:
162
162
; X64: # %bb.0:
0 commit comments