|
3 | 3 |
|
4 | 4 | // REQUIRES: CPU=armv7k
|
5 | 5 | // REQUIRES: OS=watchos
|
6 |
| -// REQUIRES: rdar_32317328 |
7 | 6 |
|
8 | 7 | // CHECK-LABEL: define hidden swiftcc float @_T08test_v7k9addFloats{{.*}}(float, float)
|
9 | 8 | // CHECK: fadd float %0, %1
|
@@ -204,12 +203,12 @@ func testMultiP(x: MultiPayload) -> Double {
|
204 | 203 | // CHECK: ret float
|
205 | 204 | // V7K-LABEL: __T08test_v7k0A3Opt
|
206 | 205 | // V7K: tst r1, #1
|
207 |
| -// V7K: str r0, [r7, #-20] |
208 |
| -// V7K: ldr r0, [r7, #-20] |
| 206 | +// V7K: str r0, [r7, [[SLOT:#-[0-9]+]] |
| 207 | +// V7K: ldr r0, [r7, [[SLOT]] |
209 | 208 | // V7K: vmov s0, r0
|
210 |
| -// V7K: sub sp, r7, #16 |
211 |
| -// V7K: pop {r11} |
212 |
| -// V7K: pop {r4, r5, r6, r7, pc} |
| 209 | +// V7K: vstr s0, [r7, [[SLOT2:#-[0-9]+]] |
| 210 | +// V7K: vldr s0, [r7, [[SLOT2]] |
| 211 | +// V7K: pop {{{.*}}, pc} |
213 | 212 | func testOpt(x: Float?) -> Float {
|
214 | 213 | return x!
|
215 | 214 | }
|
@@ -339,42 +338,16 @@ func minMax3(x : Int, y : Int) -> Ret? {
|
339 | 338 | // Passing struct: Int8, MyPoint x 10, MySize * 10
|
340 | 339 | // CHECK-LABEL: define hidden swiftcc double @_T08test_v7k0A4Ret5{{.*}}(%T8test_v7k7MyRect3V* noalias nocapture dereferenceable(328))
|
341 | 340 | // V7K-LABEL: __T08test_v7k0A4Ret5
|
342 |
| -// V7K: sub sp, sp, #56 |
343 |
| -// V7K: ldrb r1, [r0] |
344 |
| -// V7K: strb r1, [sp, #52] |
345 |
| -// V7K: ldrsb r1, [sp, #52] |
346 |
| -// V7K: vmov s0, r1 |
347 |
| -// V7K: vcvt.f64.s32 d16, s0 |
348 |
| -// V7K: ldr r1, [r0, #8] |
349 |
| -// V7K: str r1, [sp, #24] |
350 |
| -// V7K: ldr r1, [r0, #12] |
351 |
| -// V7K: str r1, [sp, #28] |
352 |
| -// V7K: ldr r1, [r0, #16] |
353 |
| -// V7K: str r1, [sp, #32] |
354 |
| -// V7K: ldr r1, [r0, #20] |
355 |
| -// V7K: str r1, [sp, #36] |
356 |
| -// V7K: ldr r1, [sp, #24] |
357 |
| -// V7K: str r1, [sp, #40] |
358 |
| -// V7K: ldr r1, [sp, #28] |
359 |
| -// V7K: str r1, [sp, #44] |
360 |
| -// V7K: vldr d18, [sp, #40] |
361 |
| -// V7K: vadd.f64 d16, d16, d18 |
362 |
| -// V7K: ldr r1, [r0, #296] |
363 |
| -// V7K: str r1, [sp] |
364 |
| -// V7K: ldr r1, [r0, #300] |
365 |
| -// V7K: str r1, [sp, #4] |
366 |
| -// V7K: ldr r1, [r0, #304] |
367 |
| -// V7K: str r1, [sp, #8] |
368 |
| -// V7K: ldr r0, [r0, #308] |
369 |
| -// V7K: str r0, [sp, #12] |
370 |
| -// V7K: ldr r0, [sp] |
371 |
| -// V7K: str r0, [sp, #16] |
372 |
| -// V7K: ldr r0, [sp, #4] |
373 |
| -// V7K: str r0, [sp, #20] |
374 |
| -// V7K: vldr d18, [sp, #16] |
375 |
| -// V7K: vadd.f64 d0, d16, d18 |
376 |
| -// V7K: add sp, sp, #56 |
377 |
| -// V7K: bx lr |
| 341 | +// V7K: ldrb r1, [r0] |
| 342 | +// V7K: vldr d16, [r0, #8] |
| 343 | +// V7K: add r0, r0, #296 |
| 344 | +// V7K: vldr d18, [r0] |
| 345 | +// V7K: sxtb r0, r1 |
| 346 | +// V7K: vmov s0, r0 |
| 347 | +// V7K: vcvt.f64.s32 d20, s0 |
| 348 | +// V7K: vadd.f64 d16, d20, d16 |
| 349 | +// V7K: vadd.f64 d0, d16, d18 |
| 350 | +// V7K: bx lr |
378 | 351 |
|
379 | 352 | struct MyRect3 {
|
380 | 353 | var t: Int8
|
|
0 commit comments