Home | History | Annotate | Download | only in AArch64
      1 ; RUN: llc < %s -mtriple=arm64-apple-ios | FileCheck %s
      2 
      3 ; CHECK-LABEL: _test:
      4 ; CHECK:  fmov.2d v0, #2.00000000
      5 ; CHECK:  str  q0, [sp]
      6 ; CHECK:  mov  x8, sp
      7 ; CHECK:  ldr s0, [x8, w1, sxtw #2]
      8 ; CHECK:  str  s0, [x0]
      9 
     10 define void @test(float * %p1, i32 %v1) {
     11 entry:
     12   %v2 = extractelement <3 x float> <float 0.000000e+00, float 2.000000e+00, float 0.000000e+00>, i32 %v1
     13   store float %v2, float* %p1, align 4
     14   ret void
     15 }
     16 
     17 ; CHECK-LABEL: _test2
     18 ; CHECK: movi.16b  v0, #0x3f
     19 ; CHECK: str  q0, [sp]
     20 ; CHECK: mov  x8, sp
     21 ; CHECK: ldr s0, [x8, w1, sxtw #2]
     22 ; CHECK: str  s0, [x0]
     23 
     24 define void @test2(float * %p1, i32 %v1) {
     25 entry:
     26   %v2 = extractelement <3 x float> <float 0.7470588088035583, float 0.7470588088035583, float 0.7470588088035583>, i32 %v1
     27   store float %v2, float* %p1, align 4
     28   ret void
     29 }
     30