OLD | NEW |
1 ; Show that we know how to translate vpush and vpop. | 1 ; Show that we know how to translate vpush and vpop. |
2 | 2 |
3 ; NOTE: We use -O2 because vpush/vpop only occur if optimized. Uses | 3 ; NOTE: We use -O2 because vpush/vpop only occur if optimized. Uses |
4 ; simple call with double parameters to cause the insertion of | 4 ; simple call with double parameters to cause the insertion of |
5 ; vpush/vpop. | 5 ; vpush/vpop. |
6 | 6 |
7 ; REQUIRES: allow_dump | 7 ; REQUIRES: allow_dump |
8 | 8 |
9 ; Compile using standalone assembler. | 9 ; Compile using standalone assembler. |
10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 -reg-use=d9,d10 \ | 10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 -reg-use=d9,d10 \ |
11 ; RUN: | FileCheck %s --check-prefix=ASM | 11 ; RUN: | FileCheck %s --check-prefix=ASM |
12 | 12 |
13 ; Show bytes in assembled standalone code. | 13 ; Show bytes in assembled standalone code. |
14 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ | 14 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ |
15 ; RUN: --args -O2 -reg-use=d9,d10 \ | 15 ; RUN: --args -O2 -reg-use=d9,d10 \ |
16 ; RUN: | FileCheck %s --check-prefix=DIS | 16 ; RUN: | FileCheck %s --check-prefix=DIS |
17 | 17 |
18 ; Compile using integrated assembler. | 18 ; Compile using integrated assembler. |
19 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 -reg-use=d9,d10 \ | 19 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 -reg-use=d9,d10 \ |
20 ; RUN: | FileCheck %s --check-prefix=IASM | 20 ; RUN: | FileCheck %s --check-prefix=IASM |
21 | 21 |
22 ; Show bytes in assembled integrated code. | 22 ; Show bytes in assembled integrated code. |
23 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ | 23 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ |
24 ; RUN: --args -O2 -reg-use=d9,d10 \ | 24 ; RUN: --args -O2 -reg-use=d9,d10 \ |
25 ; RUN: | FileCheck %s --check-prefix=DIS | 25 ; RUN: | FileCheck %s --check-prefix=DIS |
26 | 26 |
27 define internal double @testVpushVpop(double %v1, double %v2) { | 27 define internal double @testVpushVpop(double %v1, double %v2) { |
28 ; ASM-LABEL: testVpushVpop: | 28 ; ASM-LABEL: testVpushVpop: |
29 ; DIS-LABEL: 00000000 <testVpushVpop>: | 29 ; DIS-LABEL: {{.+}} <testVpushVpop>: |
30 | 30 |
31 ; ASM: vpush {s18, s19, s20, s21} | 31 ; ASM: vpush {s18, s19, s20, s21} |
32 ; DIS: 0: ed2d9a04 | 32 ; DIS: {{.+}}: ed2d9a04 |
33 ; IASM-NOT: vpush | 33 ; IASM-NOT: vpush |
34 | 34 |
35 call void @foo() | 35 call void @foo() |
36 %res = fadd double %v1, %v2 | 36 %res = fadd double %v1, %v2 |
37 ret double %res | 37 ret double %res |
38 | 38 |
39 ; ASM: vpop {s18, s19, s20, s21} | 39 ; ASM: vpop {s18, s19, s20, s21} |
40 ; DIS: 28: ecbd9a04 | 40 ; DIS: {{.+}}: ecbd9a04 |
41 ; IASM-NOT: vpopd | 41 ; IASM-NOT: vpopd |
42 | 42 |
43 } | 43 } |
44 | 44 |
45 define internal void @foo() { | 45 define internal void @foo() { |
46 ret void | 46 ret void |
47 } | 47 } |
OLD | NEW |