OLD | NEW |
---|---|
(Empty) | |
1 ; Test that we handle select on vectors. | |
2 | |
3 ; TODO(eholk): This test will need to be updated once comparison is no | |
4 ; longer scalarized. | |
5 | |
6 ; REQUIRES: allow_dump | |
7 | |
8 ; Compile using standalone assembler. | |
9 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ | |
10 ; RUN: | FileCheck %s --check-prefix=ASM | |
11 | |
12 | |
Jim Stichnoth
2016/02/11 15:26:07
I think these tests generally only have one blank
Eric Holk
2016/02/11 19:17:23
Done.
| |
13 | |
14 define internal <4 x i32> @select4i32(<4 x i32> %a, <4 x i32> %b, <4 x i1> %s) { | |
Jim Stichnoth
2016/02/11 15:26:07
You should probably include tests on all the vecto
Eric Holk
2016/02/11 19:17:23
Okay. How much coverage do we have in the crosstes
| |
15 ; ASM-LABEL:select4i32: | |
16 ; DIS-LABEL:00000000 <select4i32>: | |
17 | |
18 entry: | |
19 %res = select <4 x i1> %s, <4 x i32> %a, <4 x i32> %b | |
20 | |
21 ; ASM: # q3 = def.pseudo | |
22 ; ASM-NEXT: vmov.s8 r0, d4[0] | |
23 ; ASM-NEXT: vmov.32 r1, d0[0] | |
24 ; ASM-NEXT: vmov.32 r2, d2[0] | |
25 ; ASM-NEXT: tst r0, #1 | |
26 ; ASM-NEXT: movne r2, r1 | |
27 ; ASM-NEXT: vmov.32 d6[0], r2 | |
28 ; ASM-NEXT: vmov.s8 r0, d4[1] | |
29 ; ASM-NEXT: vmov.32 r1, d0[1] | |
30 ; ASM-NEXT: vmov.32 r2, d2[1] | |
31 ; ASM-NEXT: tst r0, #1 | |
32 ; ASM-NEXT: movne r2, r1 | |
33 ; ASM-NEXT: vmov.32 d6[1], r2 | |
34 ; ASM-NEXT: vmov.s8 r0, d5[0] | |
35 ; ASM-NEXT: vmov.32 r1, d1[0] | |
36 ; ASM-NEXT: vmov.32 r2, d3[0] | |
37 ; ASM-NEXT: tst r0, #1 | |
38 ; ASM-NEXT: movne r2, r1 | |
39 ; ASM-NEXT: vmov.32 d7[0], r2 | |
40 ; ASM-NEXT: vmov.s8 r0, d5[1] | |
41 ; ASM-NEXT: vmov.32 r1, d1[1] | |
42 ; ASM-NEXT: vmov.32 r2, d3[1] | |
43 ; ASM-NEXT: tst r0, #1 | |
44 ; ASM-NEXT: movne r2, r1 | |
45 ; ASM-NEXT: vmov.32 d7[1], r2 | |
46 ; ASM-NEXT: vmov.i32 q0, q3 | |
47 ; ASM-NEXT: bx lr | |
48 | |
49 ret <4 x i32> %res | |
50 } | |
51 | |
Jim Stichnoth
2016/02/11 15:26:07
remove trailing blank line
| |
OLD | NEW |