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

Side by Side Diff: tests_lit/assembler/arm32/vldr-vector.ll

Issue 1663053008: Fix vector load/stores in the ARM assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 4 years, 10 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 | « src/IceInstARM32.cpp ('k') | tests_lit/assembler/arm32/vstr-vector.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 ; Show that we know how to translate vector load instructions. 1 ; Show that we know how to translate vector load instructions.
2 2
3 ; Note: Uses -O2 to remove unnecessary loads/stores, resulting in only one VLD1
4 ; instruction per function.
5
3 ; REQUIRES: allow_dump 6 ; REQUIRES: allow_dump
4 7
5 ; Compile using standalone assembler. 8 ; Compile using standalone assembler.
6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ 9 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \
10 ; RUN: -reg-use=q11,r5 \
7 ; RUN: | FileCheck %s --check-prefix=ASM 11 ; RUN: | FileCheck %s --check-prefix=ASM
8 12
9 ; Show bytes in assembled standalone code. 13 ; Show bytes in assembled standalone code.
10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ 14 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
11 ; RUN: --args -O2 \ 15 ; RUN: --args -O2 \
16 ; RUN: -reg-use=q11,r5 \
12 ; RUN: | FileCheck %s --check-prefix=DIS 17 ; RUN: | FileCheck %s --check-prefix=DIS
13 18
14 ; Compile using integrated assembler. 19 ; Compile using integrated assembler.
15 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 \ 20 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 \
21 ; RUN: -reg-use=q11,r5 \
16 ; RUN: | FileCheck %s --check-prefix=IASM 22 ; RUN: | FileCheck %s --check-prefix=IASM
17 23
18 ; Show bytes in assembled integrated code. 24 ; Show bytes in assembled integrated code.
19 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ 25 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \
20 ; RUN: --args -O2 \ 26 ; RUN: --args -O2 \
27 ; RUN: -reg-use=q11,r5 \
21 ; RUN: | FileCheck %s --check-prefix=DIS 28 ; RUN: | FileCheck %s --check-prefix=DIS
22 29
23 define internal <4 x float> @testDerefFloat4(<4 x float> *%p) { 30 define internal <4 x float> @testDerefFloat4(<4 x float> *%p) {
24 ; ASM-LABEL: testDerefFloat4: 31 ; ASM-LABEL: testDerefFloat4:
25 ; DIS-LABEL: 00000000 <testDerefFloat4>: 32 ; DIS-LABEL: {{.+}} <testDerefFloat4>:
26 ; IASM-LABEL: testDerefFloat4: 33 ; IASM-LABEL: testDerefFloat4:
27 34
28 entry: 35 entry:
29 %ret = load <4 x float>, <4 x float>* %p, align 4 36 %ret = load <4 x float>, <4 x float>* %p, align 4
30 ; ASM: vld1.64» q0, [r0] 37 ; ASM: vld1.32 q11, [r5]
31 ; DIS: 0: f4200acf 38 ; DIS: {{.*}}: f4656a8f
39 ; IASM-NOT: vld1.32
32 40
33 ret <4 x float> %ret 41 ret <4 x float> %ret
34 } 42 }
35 43
36 define internal <4 x i32> @testDeref4i32(<4 x i32> *%p) { 44 define internal <4 x i32> @testDeref4i32(<4 x i32> *%p) {
37 ; ASM-LABEL: testDeref4i32: 45 ; ASM-LABEL: testDeref4i32:
38 ; DIS-LABEL: 00000010 <testDeref4i32>: 46 ; DIS-LABEL: {{.+}} <testDeref4i32>:
39 ; IASM-LABEL: testDeref4i32: 47 ; IASM-LABEL: testDeref4i32:
40 48
41 entry: 49 entry:
42 %ret = load <4 x i32>, <4 x i32>* %p, align 4 50 %ret = load <4 x i32>, <4 x i32>* %p, align 4
43 ; ASM: vld1.64» q0, [r0] 51 ; ASM: vld1.32 q11, [r5]
44 ; DIS: 10: f4200acf 52 ; DIS: {{.+}}: f4656a8f
53 ; IASM-NOT: vld1.32
45 54
46 ret <4 x i32> %ret 55 ret <4 x i32> %ret
47 } 56 }
48 57
49 define internal <8 x i16> @testDeref8i16(<8 x i16> *%p) { 58 define internal <8 x i16> @testDeref8i16(<8 x i16> *%p) {
50 ; ASM-LABEL: testDeref8i16: 59 ; ASM-LABEL: testDeref8i16:
51 ; DIS-LABEL: 00000020 <testDeref8i16>: 60 ; DIS-LABEL: {{.+}} <testDeref8i16>:
52 ; IASM-LABEL: testDeref8i16: 61 ; IASM-LABEL: testDeref8i16:
53 62
54 entry: 63 entry:
55 %ret = load <8 x i16>, <8 x i16>* %p, align 2 64 %ret = load <8 x i16>, <8 x i16>* %p, align 2
56 ; ASM: vld1.64» q0, [r0] 65 ; ASM: vld1.16 q11, [r5]
57 ; DIS: 20: f4200acf 66 ; DIS: {{.+}}: f4656a4f
67 ; IASM-NOT: vld1.16
58 68
59 ret <8 x i16> %ret 69 ret <8 x i16> %ret
60 } 70 }
61 71
62 define internal <16 x i8> @testDeref16i8(<16 x i8> *%p) { 72 define internal <16 x i8> @testDeref16i8(<16 x i8> *%p) {
63 ; ASM-LABEL: testDeref16i8: 73 ; ASM-LABEL: testDeref16i8:
64 ; DIS-LABEL: 00000030 <testDeref16i8>: 74 ; DIS-LABEL: {{.+}} <testDeref16i8>:
65 ; IASM-LABEL: testDeref16i8: 75 ; IASM-LABEL: testDeref16i8:
66 76
67 entry: 77 entry:
68 %ret = load <16 x i8>, <16 x i8>* %p, align 1 78 %ret = load <16 x i8>, <16 x i8>* %p, align 1
69 ; ASM: vld1.64» q0, [r0] 79 ; ASM: vld1.8 q11, [r5]
70 ; DIS: 30: f4200acf 80 ; DIS: {{.+}}: f4656a0f
81 ; IASM-NOT: vld1.8
71 82
72 ret <16 x i8> %ret 83 ret <16 x i8> %ret
73 } 84 }
OLDNEW
« no previous file with comments | « src/IceInstARM32.cpp ('k') | tests_lit/assembler/arm32/vstr-vector.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698