 
 // REQUIRES: CPU=armv7k
 // REQUIRES: OS=watchos
-// REQUIRES: rdar_32317328
 
 // CHECK-LABEL: define hidden swiftcc float @_T08test_v7k9addFloats{{.*}}(float, float)
 // CHECK: fadd float %0, %1

// Passing struct: Int8, MyPoint x 10, MySize * 10
// CHECK-LABEL: define hidden swiftcc double @_T08test_v7k0A4Ret5{{.*}}(%T8test_v7k7MyRect3V* noalias nocapture dereferenceable(328))
// V7K-LABEL: __T08test_v7k0A4Ret5
// V7K:  sub     sp, sp, #56
// V7K:  ldrb    r1, [r0]
// V7K:  strb    r1, [sp, #52]
// V7K:  ldrsb   r1, [sp, #52]
// V7K:  vmov    s0, r1
// V7K:  vcvt.f64.s32    d16, s0
// V7K:  ldr     r1, [r0, #8]
// V7K:  str     r1, [sp, #24]
// V7K:  ldr     r1, [r0, #12]
// V7K:  str     r1, [sp, #28]
// V7K:  ldr     r1, [r0, #16]
// V7K:  str     r1, [sp, #32]
// V7K:  ldr     r1, [r0, #20]
// V7K:  str     r1, [sp, #36]
// V7K:  ldr     r1, [sp, #24]
// V7K:  str     r1, [sp, #40]
// V7K:  ldr     r1, [sp, #28]
// V7K:  str     r1, [sp, #44]
// V7K:  vldr    d18, [sp, #40]
// V7K:  vadd.f64        d16, d16, d18
// V7K:  ldr     r1, [r0, #296]
// V7K:  str     r1, [sp]
// V7K:  ldr     r1, [r0, #300]
// V7K:  str     r1, [sp, #4]
// V7K:  ldr     r1, [r0, #304]
// V7K:  str     r1, [sp, #8]
// V7K:  ldr     r0, [r0, #308]
// V7K:  str     r0, [sp, #12]
// V7K:  ldr     r0, [sp]
// V7K:  str     r0, [sp, #16]
// V7K:  ldr     r0, [sp, #4]
// V7K:  str     r0, [sp, #20]
// V7K:  vldr    d18, [sp, #16]
// V7K:  vadd.f64        d0, d16, d18
// V7K:  add     sp, sp, #56
// V7K:  bx      lr

struct MyRect3 {
  var t: Int8

// CHECK: ret float
// V7K-LABEL: __T08test_v7k0A3Opt
// V7K:         tst     r1, #1
// V7K:         str     r0, [r7, [[SLOT:#-[0-9]+]]
// V7K:         ldr     r0, [r7, [[SLOT]]
// V7K:         vmov    s0, r0
// V7K:         vstr    s0, [r7, [[SLOT2:#-[0-9]+]]
// V7K:         vldr    s0, [r7, [[SLOT2]]
// V7K:         pop     {{{.*}}, pc}
func testOpt(x: Float?) -> Float {
  return x!
}
