1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=X86 --check-prefix=X86-AVX
3
- ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefix=X86 --check-prefix=X86-AVX512VL
4
- ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefix=X86 --check-prefix=X86-AVX512VLDQ
5
- ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX
6
- ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX512VL
7
- ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefix=X64 --check-prefix=X64-AVX512VLDQ
2
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=X86,X86-AVX,X86-AVX1
3
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=X86,X86-AVX,X86-AVX2
4
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefixes=X86,X86-AVX512VL
5
+ ; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefixes=X86,X86-AVX512VLDQ
6
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=X64,X64-AVX,X64-AVX1
7
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=X64,X64-AVX,X64-AVX2
8
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefixes=X64,X64-AVX512VL
9
+ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefixes=X64,X64-AVX512VLDQ
8
10
9
11
define <2 x double > @fabs_v2f64 (<2 x double > %p ) {
10
12
; X86-AVX-LABEL: fabs_v2f64:
@@ -42,10 +44,16 @@ define <2 x double> @fabs_v2f64(<2 x double> %p) {
42
44
declare <2 x double > @llvm.fabs.v2f64 (<2 x double > %p )
43
45
44
46
define <4 x float > @fabs_v4f32 (<4 x float > %p ) {
45
- ; X86-AVX-LABEL: fabs_v4f32:
46
- ; X86-AVX: # %bb.0:
47
- ; X86-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0, %xmm0
48
- ; X86-AVX-NEXT: retl
47
+ ; X86-AVX1-LABEL: fabs_v4f32:
48
+ ; X86-AVX1: # %bb.0:
49
+ ; X86-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %xmm0, %xmm0
50
+ ; X86-AVX1-NEXT: retl
51
+ ;
52
+ ; X86-AVX2-LABEL: fabs_v4f32:
53
+ ; X86-AVX2: # %bb.0:
54
+ ; X86-AVX2-NEXT: vbroadcastss {{.*#+}} xmm1 = [NaN,NaN,NaN,NaN]
55
+ ; X86-AVX2-NEXT: vandps %xmm1, %xmm0, %xmm0
56
+ ; X86-AVX2-NEXT: retl
49
57
;
50
58
; X86-AVX512VL-LABEL: fabs_v4f32:
51
59
; X86-AVX512VL: # %bb.0:
@@ -57,10 +65,16 @@ define <4 x float> @fabs_v4f32(<4 x float> %p) {
57
65
; X86-AVX512VLDQ-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}{1to4}, %xmm0, %xmm0
58
66
; X86-AVX512VLDQ-NEXT: retl
59
67
;
60
- ; X64-AVX-LABEL: fabs_v4f32:
61
- ; X64-AVX: # %bb.0:
62
- ; X64-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
63
- ; X64-AVX-NEXT: retq
68
+ ; X64-AVX1-LABEL: fabs_v4f32:
69
+ ; X64-AVX1: # %bb.0:
70
+ ; X64-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
71
+ ; X64-AVX1-NEXT: retq
72
+ ;
73
+ ; X64-AVX2-LABEL: fabs_v4f32:
74
+ ; X64-AVX2: # %bb.0:
75
+ ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} xmm1 = [NaN,NaN,NaN,NaN]
76
+ ; X64-AVX2-NEXT: vandps %xmm1, %xmm0, %xmm0
77
+ ; X64-AVX2-NEXT: retq
64
78
;
65
79
; X64-AVX512VL-LABEL: fabs_v4f32:
66
80
; X64-AVX512VL: # %bb.0:
@@ -77,10 +91,16 @@ define <4 x float> @fabs_v4f32(<4 x float> %p) {
77
91
declare <4 x float > @llvm.fabs.v4f32 (<4 x float > %p )
78
92
79
93
define <4 x double > @fabs_v4f64 (<4 x double > %p ) {
80
- ; X86-AVX-LABEL: fabs_v4f64:
81
- ; X86-AVX: # %bb.0:
82
- ; X86-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0
83
- ; X86-AVX-NEXT: retl
94
+ ; X86-AVX1-LABEL: fabs_v4f64:
95
+ ; X86-AVX1: # %bb.0:
96
+ ; X86-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0
97
+ ; X86-AVX1-NEXT: retl
98
+ ;
99
+ ; X86-AVX2-LABEL: fabs_v4f64:
100
+ ; X86-AVX2: # %bb.0:
101
+ ; X86-AVX2-NEXT: vbroadcastsd {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN]
102
+ ; X86-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
103
+ ; X86-AVX2-NEXT: retl
84
104
;
85
105
; X86-AVX512VL-LABEL: fabs_v4f64:
86
106
; X86-AVX512VL: # %bb.0:
@@ -92,10 +112,16 @@ define <4 x double> @fabs_v4f64(<4 x double> %p) {
92
112
; X86-AVX512VLDQ-NEXT: vandpd {{\.?LCPI[0-9]+_[0-9]+}}{1to4}, %ymm0, %ymm0
93
113
; X86-AVX512VLDQ-NEXT: retl
94
114
;
95
- ; X64-AVX-LABEL: fabs_v4f64:
96
- ; X64-AVX: # %bb.0:
97
- ; X64-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
98
- ; X64-AVX-NEXT: retq
115
+ ; X64-AVX1-LABEL: fabs_v4f64:
116
+ ; X64-AVX1: # %bb.0:
117
+ ; X64-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
118
+ ; X64-AVX1-NEXT: retq
119
+ ;
120
+ ; X64-AVX2-LABEL: fabs_v4f64:
121
+ ; X64-AVX2: # %bb.0:
122
+ ; X64-AVX2-NEXT: vbroadcastsd {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN]
123
+ ; X64-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
124
+ ; X64-AVX2-NEXT: retq
99
125
;
100
126
; X64-AVX512VL-LABEL: fabs_v4f64:
101
127
; X64-AVX512VL: # %bb.0:
@@ -112,10 +138,16 @@ define <4 x double> @fabs_v4f64(<4 x double> %p) {
112
138
declare <4 x double > @llvm.fabs.v4f64 (<4 x double > %p )
113
139
114
140
define <8 x float > @fabs_v8f32 (<8 x float > %p ) {
115
- ; X86-AVX-LABEL: fabs_v8f32:
116
- ; X86-AVX: # %bb.0:
117
- ; X86-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0
118
- ; X86-AVX-NEXT: retl
141
+ ; X86-AVX1-LABEL: fabs_v8f32:
142
+ ; X86-AVX1: # %bb.0:
143
+ ; X86-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}, %ymm0, %ymm0
144
+ ; X86-AVX1-NEXT: retl
145
+ ;
146
+ ; X86-AVX2-LABEL: fabs_v8f32:
147
+ ; X86-AVX2: # %bb.0:
148
+ ; X86-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN]
149
+ ; X86-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
150
+ ; X86-AVX2-NEXT: retl
119
151
;
120
152
; X86-AVX512VL-LABEL: fabs_v8f32:
121
153
; X86-AVX512VL: # %bb.0:
@@ -127,10 +159,16 @@ define <8 x float> @fabs_v8f32(<8 x float> %p) {
127
159
; X86-AVX512VLDQ-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}{1to8}, %ymm0, %ymm0
128
160
; X86-AVX512VLDQ-NEXT: retl
129
161
;
130
- ; X64-AVX-LABEL: fabs_v8f32:
131
- ; X64-AVX: # %bb.0:
132
- ; X64-AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
133
- ; X64-AVX-NEXT: retq
162
+ ; X64-AVX1-LABEL: fabs_v8f32:
163
+ ; X64-AVX1: # %bb.0:
164
+ ; X64-AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
165
+ ; X64-AVX1-NEXT: retq
166
+ ;
167
+ ; X64-AVX2-LABEL: fabs_v8f32:
168
+ ; X64-AVX2: # %bb.0:
169
+ ; X64-AVX2-NEXT: vbroadcastss {{.*#+}} ymm1 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN]
170
+ ; X64-AVX2-NEXT: vandps %ymm1, %ymm0, %ymm0
171
+ ; X64-AVX2-NEXT: retq
134
172
;
135
173
; X64-AVX512VL-LABEL: fabs_v8f32:
136
174
; X64-AVX512VL: # %bb.0:
0 commit comments