Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: tests_lit/llvm2ice_tests/undef.ll

Issue 509233002: Convert lit tests to check disassembled assembly. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: reorder some CALLTARGETS-LABEL Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests_lit/llvm2ice_tests/simple-loop.ll ('k') | tests_lit/llvm2ice_tests/unreachable.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; This test checks that undef values are represented as zero. 1 ; This test checks that undef values are represented as zero.
2 2
3 ; RUN: %llvm2ice --verbose none %s | FileCheck %s
4 ; RUN: %llvm2ice -O2 --verbose none %s | FileCheck %s
5 ; RUN: %llvm2ice -mattr=sse4.1 --verbose none %s | FileCheck %s
6 ; RUN: %llvm2ice -mattr=sse4.1 -O2 --verbose none %s | FileCheck %s
7 ; RUN: %llvm2ice -O2 --verbose none %s \ 3 ; RUN: %llvm2ice -O2 --verbose none %s \
8 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj 4 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
5 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
9 ; RUN: %llvm2ice -Om1 --verbose none %s \ 6 ; RUN: %llvm2ice -Om1 --verbose none %s \
10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj 7 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
11 ; RUN: %llvm2ice -mattr=sse4.1 -O2 --verbose none %s \ 8 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
12 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj 9 ; RUN: %llvm2ice -O2 -mattr=sse4.1 --verbose none %s \
13 ; RUN: %llvm2ice -mattr=sse4.1 -Om1 --verbose none %s \ 10 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
14 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj 11 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
12 ; RUN: %llvm2ice -Om1 -mattr=sse4.1 --verbose none %s \
13 ; RUN: | llvm-mc -triple=i686-none-nacl -x86-asm-syntax=intel -filetype=obj \
14 ; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s
15 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s 15 ; RUN: %llvm2ice --verbose none %s | FileCheck --check-prefix=ERRORS %s
16 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s 16 ; RUN: %llvm2iceinsts %s | %szdiff %s | FileCheck --check-prefix=DUMP %s
17 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \ 17 ; RUN: %llvm2iceinsts --pnacl %s | %szdiff %s \
18 ; RUN: | FileCheck --check-prefix=DUMP %s 18 ; RUN: | FileCheck --check-prefix=DUMP %s
19 19
20 define i32 @undef_i32() { 20 define i32 @undef_i32() {
21 entry: 21 entry:
22 ret i32 undef 22 ret i32 undef
23 ; CHECK-LABEL: undef_i32: 23 ; CHECK-LABEL: undef_i32
24 ; CHECK: mov eax, 0 24 ; CHECK: mov eax, 0
25 } 25 }
26 26
27 define i64 @undef_i64() { 27 define i64 @undef_i64() {
28 entry: 28 entry:
29 ret i64 undef 29 ret i64 undef
30 ; CHECK-LABEL: undef_i64: 30 ; CHECK-LABEL: undef_i64
31 ; CHECK-DAG: mov eax, 0 31 ; CHECK-DAG: mov eax, 0
32 ; CHECK-DAG: mov edx, 0 32 ; CHECK-DAG: mov edx, 0
33 ; CHECK: ret 33 ; CHECK: ret
34 } 34 }
35 35
36 define float @undef_float() { 36 define float @undef_float() {
37 entry: 37 entry:
38 ret float undef 38 ret float undef
39 ; CHECK-LABEL: undef_float: 39 ; CHECK-LABEL: undef_float
40 ; CHECK: [L$float$ 40 ; CHECK: fld dword ptr [0]
41 } 41 }
42 42
43 define <4 x i1> @undef_v4i1() { 43 define <4 x i1> @undef_v4i1() {
44 entry: 44 entry:
45 ret <4 x i1> undef 45 ret <4 x i1> undef
46 ; CHECK-LABEL: undef_v4i1: 46 ; CHECK-LABEL: undef_v4i1
47 ; CHECK: pxor 47 ; CHECK: pxor
48 } 48 }
49 49
50 define <8 x i1> @undef_v8i1() { 50 define <8 x i1> @undef_v8i1() {
51 entry: 51 entry:
52 ret <8 x i1> undef 52 ret <8 x i1> undef
53 ; CHECK-LABEL: undef_v8i1: 53 ; CHECK-LABEL: undef_v8i1
54 ; CHECK: pxor 54 ; CHECK: pxor
55 } 55 }
56 56
57 define <16 x i1> @undef_v16i1() { 57 define <16 x i1> @undef_v16i1() {
58 entry: 58 entry:
59 ret <16 x i1> undef 59 ret <16 x i1> undef
60 ; CHECK-LABEL: undef_v16i1: 60 ; CHECK-LABEL: undef_v16i1
61 ; CHECK: pxor 61 ; CHECK: pxor
62 } 62 }
63 63
64 define <16 x i8> @undef_v16i8() { 64 define <16 x i8> @undef_v16i8() {
65 entry: 65 entry:
66 ret <16 x i8> undef 66 ret <16 x i8> undef
67 ; CHECK-LABEL: undef_v16i8: 67 ; CHECK-LABEL: undef_v16i8
68 ; CHECK: pxor 68 ; CHECK: pxor
69 } 69 }
70 70
71 define <8 x i16> @undef_v8i16() { 71 define <8 x i16> @undef_v8i16() {
72 entry: 72 entry:
73 ret <8 x i16> undef 73 ret <8 x i16> undef
74 ; CHECK-LABEL: undef_v8i16: 74 ; CHECK-LABEL: undef_v8i16
75 ; CHECK: pxor 75 ; CHECK: pxor
76 } 76 }
77 77
78 define <4 x i32> @undef_v4i32() { 78 define <4 x i32> @undef_v4i32() {
79 entry: 79 entry:
80 ret <4 x i32> undef 80 ret <4 x i32> undef
81 ; CHECK-LABEL: undef_v4i32: 81 ; CHECK-LABEL: undef_v4i32
82 ; CHECK: pxor 82 ; CHECK: pxor
83 } 83 }
84 84
85 define <4 x float> @undef_v4f32() { 85 define <4 x float> @undef_v4f32() {
86 entry: 86 entry:
87 ret <4 x float> undef 87 ret <4 x float> undef
88 ; CHECK-LABEL: undef_v4f32: 88 ; CHECK-LABEL: undef_v4f32
89 ; CHECK: pxor 89 ; CHECK: pxor
90 } 90 }
91 91
92 define <4 x i32> @vector_arith(<4 x i32> %arg) { 92 define <4 x i32> @vector_arith(<4 x i32> %arg) {
93 entry: 93 entry:
94 %val = add <4 x i32> undef, %arg 94 %val = add <4 x i32> undef, %arg
95 ret <4 x i32> %val 95 ret <4 x i32> %val
96 ; CHECK-LABEL: vector_arith: 96 ; CHECK-LABEL: vector_arith
97 ; CHECK: pxor 97 ; CHECK: pxor
98 } 98 }
99 99
100 define <4 x float> @vector_bitcast() { 100 define <4 x float> @vector_bitcast() {
101 entry: 101 entry:
102 %val = bitcast <4 x i32> undef to <4 x float> 102 %val = bitcast <4 x i32> undef to <4 x float>
103 ret <4 x float> %val 103 ret <4 x float> %val
104 ; CHECK-LABEL: vector_bitcast: 104 ; CHECK-LABEL: vector_bitcast
105 ; CHECK: pxor 105 ; CHECK: pxor
106 } 106 }
107 107
108 define <4 x i32> @vector_sext() { 108 define <4 x i32> @vector_sext() {
109 entry: 109 entry:
110 %val = sext <4 x i1> undef to <4 x i32> 110 %val = sext <4 x i1> undef to <4 x i32>
111 ret <4 x i32> %val 111 ret <4 x i32> %val
112 ; CHECK-LABEL: vector_sext: 112 ; CHECK-LABEL: vector_sext
113 ; CHECK: pxor 113 ; CHECK: pxor
114 } 114 }
115 115
116 define <4 x i32> @vector_zext() { 116 define <4 x i32> @vector_zext() {
117 entry: 117 entry:
118 %val = zext <4 x i1> undef to <4 x i32> 118 %val = zext <4 x i1> undef to <4 x i32>
119 ret <4 x i32> %val 119 ret <4 x i32> %val
120 ; CHECK-LABEL: vector_zext: 120 ; CHECK-LABEL: vector_zext
121 ; CHECK: pxor 121 ; CHECK: pxor
122 } 122 }
123 123
124 define <4 x i1> @vector_trunc() { 124 define <4 x i1> @vector_trunc() {
125 entry: 125 entry:
126 %val = trunc <4 x i32> undef to <4 x i1> 126 %val = trunc <4 x i32> undef to <4 x i1>
127 ret <4 x i1> %val 127 ret <4 x i1> %val
128 ; CHECK-LABEL: vector_trunc: 128 ; CHECK-LABEL: vector_trunc
129 ; CHECK: pxor 129 ; CHECK: pxor
130 } 130 }
131 131
132 define <4 x i1> @vector_icmp(<4 x i32> %arg) { 132 define <4 x i1> @vector_icmp(<4 x i32> %arg) {
133 entry: 133 entry:
134 %val = icmp eq <4 x i32> undef, %arg 134 %val = icmp eq <4 x i32> undef, %arg
135 ret <4 x i1> %val 135 ret <4 x i1> %val
136 ; CHECK-LABEL: vector_icmp: 136 ; CHECK-LABEL: vector_icmp
137 ; CHECK: pxor 137 ; CHECK: pxor
138 } 138 }
139 139
140 define <4 x i1> @vector_fcmp(<4 x float> %arg) { 140 define <4 x i1> @vector_fcmp(<4 x float> %arg) {
141 entry: 141 entry:
142 %val = fcmp ueq <4 x float> undef, %arg 142 %val = fcmp ueq <4 x float> undef, %arg
143 ret <4 x i1> %val 143 ret <4 x i1> %val
144 ; CHECK-LABEL: vector_fcmp: 144 ; CHECK-LABEL: vector_fcmp
145 ; CHECK: pxor 145 ; CHECK: pxor
146 } 146 }
147 147
148 define <4 x i32> @vector_fptosi() { 148 define <4 x i32> @vector_fptosi() {
149 entry: 149 entry:
150 %val = fptosi <4 x float> undef to <4 x i32> 150 %val = fptosi <4 x float> undef to <4 x i32>
151 ret <4 x i32> %val 151 ret <4 x i32> %val
152 ; CHECK-LABEL: vector_fptosi: 152 ; CHECK-LABEL: vector_fptosi
153 ; CHECK: pxor 153 ; CHECK: pxor
154 } 154 }
155 155
156 define <4 x i32> @vector_fptoui() { 156 define <4 x i32> @vector_fptoui() {
157 entry: 157 entry:
158 %val = fptoui <4 x float> undef to <4 x i32> 158 %val = fptoui <4 x float> undef to <4 x i32>
159 ret <4 x i32> %val 159 ret <4 x i32> %val
160 ; CHECK-LABEL: vector_fptoui: 160 ; CHECK-LABEL: vector_fptoui
161 ; CHECK: pxor 161 ; CHECK: pxor
162 } 162 }
163 163
164 define <4 x float> @vector_sitofp() { 164 define <4 x float> @vector_sitofp() {
165 entry: 165 entry:
166 %val = sitofp <4 x i32> undef to <4 x float> 166 %val = sitofp <4 x i32> undef to <4 x float>
167 ret <4 x float> %val 167 ret <4 x float> %val
168 ; CHECK-LABEL: vector_sitofp: 168 ; CHECK-LABEL: vector_sitofp
169 ; CHECK: pxor 169 ; CHECK: pxor
170 } 170 }
171 171
172 define <4 x float> @vector_uitofp() { 172 define <4 x float> @vector_uitofp() {
173 entry: 173 entry:
174 %val = uitofp <4 x i32> undef to <4 x float> 174 %val = uitofp <4 x i32> undef to <4 x float>
175 ret <4 x float> %val 175 ret <4 x float> %val
176 ; CHECK-LABEL: vector_uitofp: 176 ; CHECK-LABEL: vector_uitofp
177 ; CHECK: pxor 177 ; CHECK: pxor
178 } 178 }
179 179
180 define <4 x float> @vector_insertelement_arg1() { 180 define <4 x float> @vector_insertelement_arg1() {
181 entry: 181 entry:
182 %val = insertelement <4 x float> undef, float 1.0, i32 0 182 %val = insertelement <4 x float> undef, float 1.0, i32 0
183 ret <4 x float> %val 183 ret <4 x float> %val
184 ; CHECK-LABEL: vector_insertelement_arg1: 184 ; CHECK-LABEL: vector_insertelement_arg1
185 ; CHECK: pxor 185 ; CHECK: pxor
186 } 186 }
187 187
188 define <4 x float> @vector_insertelement_arg2(<4 x float> %arg) { 188 define <4 x float> @vector_insertelement_arg2(<4 x float> %arg) {
189 entry: 189 entry:
190 %val = insertelement <4 x float> %arg, float undef, i32 0 190 %val = insertelement <4 x float> %arg, float undef, i32 0
191 ret <4 x float> %val 191 ret <4 x float> %val
192 ; CHECK-LABEL: vector_insertelement_arg2: 192 ; CHECK-LABEL: vector_insertelement_arg2
193 ; CHECK: [L$float$ 193 ; CHECK: movss {{.*}}, dword ptr [0]
194 } 194 }
195 195
196 define float @vector_extractelement_v4f32_index_0() { 196 define float @vector_extractelement_v4f32_index_0() {
197 entry: 197 entry:
198 %val = extractelement <4 x float> undef, i32 0 198 %val = extractelement <4 x float> undef, i32 0
199 ret float %val 199 ret float %val
200 ; CHECK-LABEL: vector_extractelement_v4f32_index_0: 200 ; CHECK-LABEL: vector_extractelement_v4f32_index_0
201 ; CHECK: pxor 201 ; CHECK: pxor
202 } 202 }
203 203
204 define float @vector_extractelement_v4f32_index_1() { 204 define float @vector_extractelement_v4f32_index_1() {
205 entry: 205 entry:
206 %val = extractelement <4 x float> undef, i32 1 206 %val = extractelement <4 x float> undef, i32 1
207 ret float %val 207 ret float %val
208 ; CHECK-LABEL: vector_extractelement_v4f32_index_1: 208 ; CHECK-LABEL: vector_extractelement_v4f32_index_1
209 ; CHECK: pxor 209 ; CHECK: pxor
210 } 210 }
211 211
212 define i32 @vector_extractelement_v16i1_index_7() { 212 define i32 @vector_extractelement_v16i1_index_7() {
213 entry: 213 entry:
214 %val.trunc = extractelement <16 x i1> undef, i32 7 214 %val.trunc = extractelement <16 x i1> undef, i32 7
215 %val = sext i1 %val.trunc to i32 215 %val = sext i1 %val.trunc to i32
216 ret i32 %val 216 ret i32 %val
217 ; CHECK-LABEL: vector_extractelement_v16i1_index_7: 217 ; CHECK-LABEL: vector_extractelement_v16i1_index_7
218 ; CHECK: pxor 218 ; CHECK: pxor
219 } 219 }
220 220
221 define <4 x i32> @vector_select_v4i32_cond(<4 x i32> %a, <4 x i32> %b) { 221 define <4 x i32> @vector_select_v4i32_cond(<4 x i32> %a, <4 x i32> %b) {
222 entry: 222 entry:
223 %val = select <4 x i1> undef, <4 x i32> %a, <4 x i32> %b 223 %val = select <4 x i1> undef, <4 x i32> %a, <4 x i32> %b
224 ret <4 x i32> %val 224 ret <4 x i32> %val
225 ; CHECK-LABEL: vector_select_v4i32_cond: 225 ; CHECK-LABEL: vector_select_v4i32_cond
226 ; CHECK: pxor 226 ; CHECK: pxor
227 } 227 }
228 228
229 define <4 x i32> @vector_select_v4i32_arg1(<4 x i1> %cond, <4 x i32> %b) { 229 define <4 x i32> @vector_select_v4i32_arg1(<4 x i1> %cond, <4 x i32> %b) {
230 entry: 230 entry:
231 %val = select <4 x i1> %cond, <4 x i32> undef, <4 x i32> %b 231 %val = select <4 x i1> %cond, <4 x i32> undef, <4 x i32> %b
232 ret <4 x i32> %val 232 ret <4 x i32> %val
233 ; CHECK-LABEL: vector_select_v4i32_arg1: 233 ; CHECK-LABEL: vector_select_v4i32_arg1
234 ; CHECK: pxor 234 ; CHECK: pxor
235 } 235 }
236 236
237 define <4 x i32> @vector_select_v4i32_arg2(<4 x i1> %cond, <4 x i32> %a) { 237 define <4 x i32> @vector_select_v4i32_arg2(<4 x i1> %cond, <4 x i32> %a) {
238 entry: 238 entry:
239 %val = select <4 x i1> %cond, <4 x i32> %a, <4 x i32> undef 239 %val = select <4 x i1> %cond, <4 x i32> %a, <4 x i32> undef
240 ret <4 x i32> %val 240 ret <4 x i32> %val
241 ; CHECK-LABEL: vector_select_v4i32_arg2: 241 ; CHECK-LABEL: vector_select_v4i32_arg2
242 ; CHECK: pxor 242 ; CHECK: pxor
243 } 243 }
244 244
245 define <4 x i1> @vector_select_v4i1_cond(<4 x i1> %a, <4 x i1> %b) { 245 define <4 x i1> @vector_select_v4i1_cond(<4 x i1> %a, <4 x i1> %b) {
246 entry: 246 entry:
247 %val = select <4 x i1> undef, <4 x i1> %a, <4 x i1> %b 247 %val = select <4 x i1> undef, <4 x i1> %a, <4 x i1> %b
248 ret <4 x i1> %val 248 ret <4 x i1> %val
249 ; CHECK-LABEL: vector_select_v4i1_cond: 249 ; CHECK-LABEL: vector_select_v4i1_cond
250 ; CHECK: pxor 250 ; CHECK: pxor
251 } 251 }
252 252
253 define <4 x i1> @vector_select_v4i1_arg1(<4 x i1> %cond, <4 x i1> %b) { 253 define <4 x i1> @vector_select_v4i1_arg1(<4 x i1> %cond, <4 x i1> %b) {
254 entry: 254 entry:
255 %val = select <4 x i1> %cond, <4 x i1> undef, <4 x i1> %b 255 %val = select <4 x i1> %cond, <4 x i1> undef, <4 x i1> %b
256 ret <4 x i1> %val 256 ret <4 x i1> %val
257 ; CHECK-LABEL: vector_select_v4i1_arg1: 257 ; CHECK-LABEL: vector_select_v4i1_arg1
258 ; CHECK: pxor 258 ; CHECK: pxor
259 } 259 }
260 260
261 define <4 x i1> @vector_select_v4i1_arg2(<4 x i1> %cond, <4 x i1> %a) { 261 define <4 x i1> @vector_select_v4i1_arg2(<4 x i1> %cond, <4 x i1> %a) {
262 entry: 262 entry:
263 %val = select <4 x i1> %cond, <4 x i1> %a, <4 x i1> undef 263 %val = select <4 x i1> %cond, <4 x i1> %a, <4 x i1> undef
264 ret <4 x i1> %val 264 ret <4 x i1> %val
265 ; CHECK-LABEL: vector_select_v4i1_arg2: 265 ; CHECK-LABEL: vector_select_v4i1_arg2
266 ; CHECK: pxor 266 ; CHECK: pxor
267 } 267 }
268 268
269 define <4 x float> @vector_select_v4f32_cond(<4 x float> %a, <4 x float> %b) { 269 define <4 x float> @vector_select_v4f32_cond(<4 x float> %a, <4 x float> %b) {
270 entry: 270 entry:
271 %val = select <4 x i1> undef, <4 x float> %a, <4 x float> %b 271 %val = select <4 x i1> undef, <4 x float> %a, <4 x float> %b
272 ret <4 x float> %val 272 ret <4 x float> %val
273 ; CHECK-LABEL: vector_select_v4f32_cond: 273 ; CHECK-LABEL: vector_select_v4f32_cond
274 ; CHECK: pxor 274 ; CHECK: pxor
275 } 275 }
276 276
277 define <4 x float> @vector_select_v4f32_arg1(<4 x i1> %cond, <4 x float> %b) { 277 define <4 x float> @vector_select_v4f32_arg1(<4 x i1> %cond, <4 x float> %b) {
278 entry: 278 entry:
279 %val = select <4 x i1> %cond, <4 x float> undef, <4 x float> %b 279 %val = select <4 x i1> %cond, <4 x float> undef, <4 x float> %b
280 ret <4 x float> %val 280 ret <4 x float> %val
281 ; CHECK-LABEL: vector_select_v4f32_arg1: 281 ; CHECK-LABEL: vector_select_v4f32_arg1
282 ; CHECK: pxor 282 ; CHECK: pxor
283 } 283 }
284 284
285 define <4 x float> @vector_select_v4f32_arg2(<4 x i1> %cond, <4 x float> %a) { 285 define <4 x float> @vector_select_v4f32_arg2(<4 x i1> %cond, <4 x float> %a) {
286 entry: 286 entry:
287 %val = select <4 x i1> %cond, <4 x float> %a, <4 x float> undef 287 %val = select <4 x i1> %cond, <4 x float> %a, <4 x float> undef
288 ret <4 x float> %val 288 ret <4 x float> %val
289 ; CHECK-LABEL: vector_select_v4f32_arg2: 289 ; CHECK-LABEL: vector_select_v4f32_arg2
290 ; CHECK: pxor 290 ; CHECK: pxor
291 } 291 }
292 292
293 ; ERRORS-NOT: ICE translation error 293 ; ERRORS-NOT: ICE translation error
294 ; DUMP-NOT: SZ 294 ; DUMP-NOT: SZ
OLDNEW
« no previous file with comments | « tests_lit/llvm2ice_tests/simple-loop.ll ('k') | tests_lit/llvm2ice_tests/unreachable.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698