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

Side by Side Diff: tests_lit/assembler/arm32/mov-const.ll

Issue 1481133002: Subzero. ARM32. Show FP lowering some love. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Handles comments; git pull; fixes lit tests. Created 5 years 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/IceTargetLoweringARM32.cpp ('k') | tests_lit/assembler/arm32/sandboxing.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 handle constants in movw and mvt, when it isn't represented as 1 ; Show that we handle constants in movw and mvt, when it isn't represented as
2 ; ConstantRelocatable (see mov-imm.ll for the ConstantRelocatable case). 2 ; ConstantRelocatable (see mov-imm.ll for the ConstantRelocatable case).
3 3
4 ; REQUIRES: allow_dump 4 ; REQUIRES: allow_dump
5 5
6 ; Compile using standalone assembler. 6 ; Compile using standalone assembler.
7 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \ 7 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \
8 ; RUN: --test-stack-extra 4084 | FileCheck %s --check-prefix=ASM 8 ; RUN: --test-stack-extra 4084 | FileCheck %s --check-prefix=ASM
9 9
10 ; Show bytes in assembled standalone code. 10 ; Show bytes in assembled standalone code.
11 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ 11 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
12 ; RUN: --args -Om1 --test-stack-extra 4084 | FileCheck %s --check-prefix=DIS 12 ; RUN: --args -Om1 --test-stack-extra 4084 | FileCheck %s --check-prefix=DIS
13 13
14 ; Compile using integrated assembler. 14 ; Compile using integrated assembler.
15 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \ 15 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \
16 ; RUN: --test-stack-extra 4084 | FileCheck %s --check-prefix=IASM 16 ; RUN: --test-stack-extra 4084 | FileCheck %s --check-prefix=IASM
17 17
18 ; Show bytes in assembled integrated code. 18 ; Show bytes in assembled integrated code.
19 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ 19 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \
20 ; RUN: --args -Om1 --test-stack-extra 4084 \ 20 ; RUN: --args -Om1 --test-stack-extra 4084 \
21 ; RUN: | FileCheck %s --check-prefix=DIS 21 ; RUN: | FileCheck %s --check-prefix=DIS
22 22
23 define internal i32 @foo(i32 %x) { 23 define internal i32 @foo(i32 %x) {
24 entry: 24 entry:
25 25
26 ; ASM-LABEL: foo: 26 ; ASM-LABEL: foo:
27 ; DIS-LABEL: 00000000 <foo>:
28 ; IASM-LABEL: foo:
29
27 ; ASM-NEXT: .Lfoo$entry: 30 ; ASM-NEXT: .Lfoo$entry:
28 ; ******* Movw case to check *******
29 ; ASM-NEXT: movw ip, #4092
30 ; ASM-NEXT: sub sp, sp, ip
31 ; ASM-NEXT: str r0, [sp, #4088]
32 ; ASM-NEXT: # [sp, #4088] = def.pseudo
33 ; DIS-LABEL: 00000000 <foo>:
34 ; DIS-NEXT: 0: e300cffc
35 ; DIS-NEXT: 4: e04dd00c
36 ; DIS-NEXT: 8: e58d0ff8
37
38 ; IASM-LABEL: foo:
39 ; IASM-NEXT: .Lfoo$entry: 31 ; IASM-NEXT: .Lfoo$entry:
40 32
33 ; ASM-NEXT: movw ip, #4092
34 ; DIS-NEXT: 0: e300cffc
41 ; IASM-NEXT: .byte 0xfc 35 ; IASM-NEXT: .byte 0xfc
42 ; IASM-NEXT: .byte 0xcf 36 ; IASM-NEXT: .byte 0xcf
43 ; IASM-NEXT: .byte 0x0 37 ; IASM-NEXT: .byte 0x0
44 ; IASM-NEXT: .byte 0xe3 38 ; IASM-NEXT: .byte 0xe3
45 39
40 ; ASM-NEXT: sub sp, sp, ip
41 ; DIS-NEXT: 4: e04dd00c
46 ; IASM-NEXT: .byte 0xc 42 ; IASM-NEXT: .byte 0xc
47 ; IASM-NEXT: .byte 0xd0 43 ; IASM-NEXT: .byte 0xd0
48 ; IASM-NEXT: .byte 0x4d 44 ; IASM-NEXT: .byte 0x4d
49 ; IASM-NEXT: .byte 0xe0 45 ; IASM-NEXT: .byte 0xe0
50 46
47 ; ASM-NEXT: str r0, [sp, #4088]
48 ; DIS-NEXT: 8: e58d0ff8
51 ; IASM-NEXT: .byte 0xf8 49 ; IASM-NEXT: .byte 0xf8
52 ; IASM-NEXT: .byte 0xf 50 ; IASM-NEXT: .byte 0xf
53 ; IASM-NEXT: .byte 0x8d 51 ; IASM-NEXT: .byte 0x8d
54 ; IASM-NEXT: .byte 0xe5 52 ; IASM-NEXT: .byte 0xe5
55 53
54 ; ASM-NEXT: # [sp, #4088] = def.pseudo
55
56 %mul = mul i32 %x, %x 56 %mul = mul i32 %x, %x
57 57
58 ; ASM-NEXT: ldr r0, [sp, #4088] 58 ; ASM-NEXT: ldr r0, [sp, #4088]
59 ; ASM-NEXT: ldr r1, [sp, #4088]
60 ; ASM-NEXT: mul r0, r0, r1
61 ; ASM-NEXT: str r0, [sp, #4084]
62 ; ASM-NEXT: # [sp, #4084] = def.pseudo
63
64 ; DIS-NEXT: c: e59d0ff8 59 ; DIS-NEXT: c: e59d0ff8
65 ; DIS-NEXT: 10: e59d1ff8
66 ; DIS-NEXT: 14: e0000190
67 ; DIS-NEXT: 18: e58d0ff4
68
69 ; IASM-NEXT: .byte 0xf8 60 ; IASM-NEXT: .byte 0xf8
70 ; IASM-NEXT: .byte 0xf 61 ; IASM-NEXT: .byte 0xf
71 ; IASM-NEXT: .byte 0x9d 62 ; IASM-NEXT: .byte 0x9d
72 ; IASM-NEXT: .byte 0xe5 63 ; IASM-NEXT: .byte 0xe5
73 64
65 ; ASM-NEXT: ldr r1, [sp, #4088]
66 ; DIS-NEXT: 10: e59d1ff8
74 ; IASM-NEXT: .byte 0xf8 67 ; IASM-NEXT: .byte 0xf8
75 ; IASM-NEXT: .byte 0x1f 68 ; IASM-NEXT: .byte 0x1f
76 ; IASM-NEXT: .byte 0x9d 69 ; IASM-NEXT: .byte 0x9d
77 ; IASM-NEXT: .byte 0xe5 70 ; IASM-NEXT: .byte 0xe5
78 71
72 ; ASM-NEXT: mul r0, r0, r1
73 ; DIS-NEXT: 14: e0000190
79 ; IASM-NEXT: .byte 0x90 74 ; IASM-NEXT: .byte 0x90
80 ; IASM-NEXT: .byte 0x1 75 ; IASM-NEXT: .byte 0x1
81 ; IASM-NEXT: .byte 0x0 76 ; IASM-NEXT: .byte 0x0
82 ; IASM-NEXT: .byte 0xe0 77 ; IASM-NEXT: .byte 0xe0
83 78
79 ; ASM-NEXT: str r0, [sp, #4084]
80 ; DIS-NEXT: 18: e58d0ff4
84 ; IASM-NEXT: .byte 0xf4 81 ; IASM-NEXT: .byte 0xf4
85 ; IASM-NEXT: .byte 0xf 82 ; IASM-NEXT: .byte 0xf
86 ; IASM-NEXT: .byte 0x8d 83 ; IASM-NEXT: .byte 0x8d
87 ; IASM-NEXT: .byte 0xe5 84 ; IASM-NEXT: .byte 0xe5
88 85
86 ; ASM-NEXT: # [sp, #4084] = def.pseudo
87
89 ret i32 %mul 88 ret i32 %mul
90 89
91 ; ASM-NEXT: ldr r0, [sp, #4084] 90 ; ASM-NEXT: ldr r0, [sp, #4084]
92 ; ******* Movw case to check *******
93 ; ASM-NEXT: movw ip, #4092
94 ; ASM-NEXT: add sp, sp, ip
95 ; ASM-NEXT: bx lr
96
97 ; DIS-NEXT: 1c: e59d0ff4 91 ; DIS-NEXT: 1c: e59d0ff4
98 ; DIS-NEXT: 20: e300cffc
99 ; DIS-NEXT: 24: e08dd00c
100 ; DIS-NEXT: 28: e12fff1e
101
102 ; IASM-NEXT: .byte 0xf4 92 ; IASM-NEXT: .byte 0xf4
103 ; IASM-NEXT: .byte 0xf 93 ; IASM-NEXT: .byte 0xf
104 ; IASM-NEXT: .byte 0x9d 94 ; IASM-NEXT: .byte 0x9d
105 ; IASM-NEXT: .byte 0xe5 95 ; IASM-NEXT: .byte 0xe5
106 96
97 ; ASM-NEXT: movw ip, #4092
98 ; DIS-NEXT: 20: e300cffc
107 ; IASM-NEXT: .byte 0xfc 99 ; IASM-NEXT: .byte 0xfc
108 ; IASM-NEXT: .byte 0xcf 100 ; IASM-NEXT: .byte 0xcf
109 ; IASM-NEXT: .byte 0x0 101 ; IASM-NEXT: .byte 0x0
110 ; IASM-NEXT: .byte 0xe3 102 ; IASM-NEXT: .byte 0xe3
111 103
104 ; ASM-NEXT: add sp, sp, ip
105 ; DIS-NEXT: 24: e08dd00c
112 ; IASM-NEXT: .byte 0xc 106 ; IASM-NEXT: .byte 0xc
113 ; IASM-NEXT: .byte 0xd0 107 ; IASM-NEXT: .byte 0xd0
114 ; IASM-NEXT: .byte 0x8d 108 ; IASM-NEXT: .byte 0x8d
115 ; IASM-NEXT: .byte 0xe0 109 ; IASM-NEXT: .byte 0xe0
116 110
111 ; ASM-NEXT: bx lr
112 ; DIS-NEXT: 28: e12fff1e
117 ; IASM-NEXT: .byte 0x1e 113 ; IASM-NEXT: .byte 0x1e
118 ; IASM-NEXT: .byte 0xff 114 ; IASM-NEXT: .byte 0xff
119 ; IASM-NEXT: .byte 0x2f 115 ; IASM-NEXT: .byte 0x2f
120 ; IASM-NEXT: .byte 0xe1 116 ; IASM-NEXT: .byte 0xe1
121 117
122 } 118 }
123 119
124 define internal void @saveMinus1(i32 %loc) { 120 define internal void @saveConstI32(i32 %loc) {
125 ; ASM-LABEL:saveMinus1: 121 ; ASM-LABEL:saveConstI32:
126 ; DIS-LABEL:00000030 <saveMinus1>: 122 ; DIS-LABEL:00000030 <saveConstI32>:
127 ; IASM-LABEL:saveMinus1: 123 ; IASM-LABEL:saveConstI32:
128 124
129 entry: 125 entry:
130 ; ASM-NEXT:.LsaveMinus1$entry: 126 ; ASM-NEXT:.LsaveConstI32$entry:
127 ; IASM-NEXT:.LsaveConstI32$entry:
128
131 ; ASM-NEXT: movw ip, #4088 129 ; ASM-NEXT: movw ip, #4088
132 ; DIS-NEXT: 30: e300cff8 130 ; DIS-NEXT: 30: e300cff8
133 ; IASM-NEXT:.LsaveMinus1$entry: 131 ; IASM-NEXT: .byte 0xf8
132 ; IASM-NEXT: .byte 0xcf
133 ; IASM-NEXT: .byte 0x0
134 ; IASM-NEXT: .byte 0xe3
134 135
135 ; ASM-NEXT: sub sp, sp, ip 136 ; ASM-NEXT: sub sp, sp, ip
136 ; DIS-NEXT: 34: e04dd00c 137 ; DIS-NEXT: 34: e04dd00c
137 ; IASM-NEXT:» .byte 0xf8 138 ; IASM-NEXT: .byte 0xc
138 ; IASM-NEXT:» .byte 0xcf 139 ; IASM-NEXT: .byte 0xd0
139 ; IASM-NEXT:» .byte 0x0 140 ; IASM-NEXT: .byte 0x4d
140 ; IASM-NEXT:» .byte 0xe3 141 ; IASM-NEXT: .byte 0xe0
141 142
142 ; ASM-NEXT: str r0, [sp, #4084] 143 ; ASM-NEXT: str r0, [sp, #4084]
143 ; ASM-NEXT: # [sp, #4084] = def.pseudo 144 ; ASM-NEXT: # [sp, #4084] = def.pseudo
144 ; DIS-NEXT: 38: e58d0ff4 145 ; DIS-NEXT: 38: e58d0ff4
145 ; IASM-NEXT:» .byte 0xc 146 ; IASM-NEXT: .byte 0xf4
146 ; IASM-NEXT:» .byte 0xd0 147 ; IASM-NEXT: .byte 0xf
147 ; IASM-NEXT:» .byte 0x4d 148 ; IASM-NEXT: .byte 0x8d
148 ; IASM-NEXT:» .byte 0xe0 149 ; IASM-NEXT: .byte 0xe5
149 150
150 %loc.asptr = inttoptr i32 %loc to i32* 151 %loc.asptr = inttoptr i32 %loc to i32*
151 store i32 -1, i32* %loc.asptr, align 1 152 store i32 524289, i32* %loc.asptr, align 1
152 153
153 ; ASM-NEXT: ldr r0, [sp, #4084] 154 ; ASM-NEXT: ldr r0, [sp, #4084]
154 ; DIS-NEXT: 3c: e59d0ff4 155 ; DIS-NEXT: 3c: e59d0ff4
155 ; IASM-NEXT:» .byte 0xf4 156 ; IASM-NEXT: .byte 0xf4
156 ; IASM-NEXT:» .byte 0xf 157 ; IASM-NEXT: .byte 0xf
157 ; IASM-NEXT:» .byte 0x8d 158 ; IASM-NEXT: .byte 0x9d
158 ; IASM-NEXT:» .byte 0xe5 159 ; IASM-NEXT: .byte 0xe5
159 160
160 ; ASM-NEXT: movw r1, #65535 161 ; ASM-NEXT: movw r1, #1
161 ; DIS-NEXT: 40: e30f1fff 162 ; DIS-NEXT: 40: e3001001
162 ; IASM-NEXT:» .byte 0xf4 163 ; IASM-NEXT: .byte 0x1
163 ; IASM-NEXT:» .byte 0xf 164 ; IASM-NEXT: .byte 0x10
164 ; IASM-NEXT:» .byte 0x9d 165 ; IASM-NEXT: .byte 0x0
165 ; IASM-NEXT:» .byte 0xe5 166 ; IASM-NEXT: .byte 0xe3
166 167
167 ; ASM-NEXT: movt r1, #65535 168 ; ASM-NEXT: movt r1, #8
168 ; DIS-NEXT: 44: e34f1fff 169 ; DIS-NEXT: 44: e3401008
169 ; IASM-NEXT:» .byte 0xff 170 ; IASM-NEXT: .byte 0x8
170 ; IASM-NEXT:» .byte 0x1f 171 ; IASM-NEXT: .byte 0x10
171 ; IASM-NEXT:» .byte 0xf 172 ; IASM-NEXT: .byte 0x40
172 ; IASM-NEXT:» .byte 0xe3 173 ; IASM-NEXT: .byte 0xe3
173 174
174 ; ASM-NEXT: str r1, [r0] 175 ; ASM-NEXT: str r1, [r0]
175 ; DIS-NEXT: 48: e5801000 176 ; DIS-NEXT: 48: e5801000
176 ; IASM-NEXT:» .byte 0xff 177 ; IASM-NEXT: .byte 0x0
177 ; IASM-NEXT:» .byte 0x1f 178 ; IASM-NEXT: .byte 0x10
178 ; IASM-NEXT:» .byte 0x4f 179 ; IASM-NEXT: .byte 0x80
179 ; IASM-NEXT:» .byte 0xe3 180 ; IASM-NEXT: .byte 0xe5
180 181
181 ret void 182 ret void
182 183
183 ; ASM-NEXT: movw ip, #4088 184 ; ASM-NEXT: movw ip, #4088
184 ; DIS-NEXT: 4c: e300cff8 185 ; DIS-NEXT: 4c: e300cff8
185 ; IASM-NEXT:» .byte 0x0 186 ; IASM-NEXT: .byte 0xf8
186 ; IASM-NEXT:» .byte 0x10 187 ; IASM-NEXT: .byte 0xcf
187 ; IASM-NEXT:» .byte 0x80 188 ; IASM-NEXT: .byte 0x0
188 ; IASM-NEXT:» .byte 0xe5 189 ; IASM-NEXT: .byte 0xe3
189 190
190 ; ASM-NEXT: add sp, sp, ip 191 ; ASM-NEXT: add sp, sp, ip
191 ; DIS-NEXT: 50: e08dd00c 192 ; DIS-NEXT: 50: e08dd00c
192 ; IASM-NEXT:» .byte 0xf8 193 ; IASM-NEXT: .byte 0xc
193 ; IASM-NEXT:» .byte 0xcf 194 ; IASM-NEXT: .byte 0xd0
194 ; IASM-NEXT:» .byte 0x0 195 ; IASM-NEXT: .byte 0x8d
195 ; IASM-NEXT:» .byte 0xe3 196 ; IASM-NEXT: .byte 0xe0
196 197
197 ; ASM-NEXT: bx lr 198 ; ASM-NEXT: bx lr
198 ; DIS-NEXT: 54: e12fff1e 199 ; DIS-NEXT: 54: e12fff1e
199 ; IASM-NEXT:» .byte 0xc 200 ; IASM-NEXT: .byte 0x1e
200 ; IASM-NEXT:» .byte 0xd0 201 ; IASM-NEXT: .byte 0xff
201 ; IASM-NEXT:» .byte 0x8d 202 ; IASM-NEXT: .byte 0x2f
202 ; IASM-NEXT:» .byte 0xe0 203 ; IASM-NEXT: .byte 0xe1
203
204 } 204 }
OLDNEW
« no previous file with comments | « src/IceTargetLoweringARM32.cpp ('k') | tests_lit/assembler/arm32/sandboxing.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698