88 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=arm64-apple-ios -aarch64-enable-collect-loh=false | FileCheck %s3 4define void @test(ptr %p1, i32 %v1) {5; CHECK-LABEL: test:6; CHECK: ; %bb.0: ; %entry7; CHECK-NEXT: sub sp, sp, #168; CHECK-NEXT: .cfi_def_cfa_offset 169; CHECK-NEXT: fmov.2d v0, #2.0000000010; CHECK-NEXT: mov x8, sp11; CHECK-NEXT: ; kill: def $w1 killed $w1 def $x112; CHECK-NEXT: bfi x8, x1, #2, #213; CHECK-NEXT: str q0, [sp]14; CHECK-NEXT: ldr s0, [x8]15; CHECK-NEXT: str s0, [x0]16; CHECK-NEXT: add sp, sp, #1617; CHECK-NEXT: ret18entry:19 %v2 = extractelement <3 x float> <float 0.000000e+00, float 2.000000e+00, float 0.000000e+00>, i32 %v120 store float %v2, ptr %p1, align 421 ret void22}23 24define void @test2(ptr %p1, i32 %v1) {25; CHECK-LABEL: test2:26; CHECK: ; %bb.0: ; %entry27; CHECK-NEXT: sub sp, sp, #1628; CHECK-NEXT: .cfi_def_cfa_offset 1629; CHECK-NEXT: movi.16b v0, #6330; CHECK-NEXT: mov x8, sp31; CHECK-NEXT: ; kill: def $w1 killed $w1 def $x132; CHECK-NEXT: bfi x8, x1, #2, #233; CHECK-NEXT: str q0, [sp]34; CHECK-NEXT: ldr s0, [x8]35; CHECK-NEXT: str s0, [x0]36; CHECK-NEXT: add sp, sp, #1637; CHECK-NEXT: ret38entry:39 %v2 = extractelement <3 x float> <float 0.7470588088035583, float 0.7470588088035583, float 0.7470588088035583>, i32 %v140 store float %v2, ptr %p1, align 441 ret void42}43 44 45%"st1" = type { %"subst1", %"subst1", %"subst1" }46%"subst1" = type { %float4 }47%float4 = type { float, float, float, float }48 49@_gv = external unnamed_addr global %"st1", align 850 51define internal void @nvcast_f32_v8i8() {52; CHECK-LABEL: nvcast_f32_v8i8:53; CHECK: ; %bb.0: ; %entry54; CHECK-NEXT: movi.8b v0, #25455; CHECK-NEXT: adrp x8, __gv@GOTPAGE56; CHECK-NEXT: ldr x8, [x8, __gv@GOTPAGEOFF]57; CHECK-NEXT: str d0, [x8]58; CHECK-NEXT: ret59entry:60 store <2 x float> <float 0xC7DFDFDFC0000000, float 0xC7DFDFDFC0000000>, ptr @_gv, align 861 ret void62}63 64%struct.Vector3 = type { float, float, float }65 66define void @nvcast_v2f32_v1f64(ptr) {67; CHECK-LABEL: nvcast_v2f32_v1f64:68; CHECK: ; %bb.0: ; %entry69; CHECK-NEXT: fmov.2s v0, #1.0000000070; CHECK-NEXT: str d0, [x0]71; CHECK-NEXT: ret72entry:73 store <1 x double> <double 0x3F8000003F800000>, ptr %0, align 874 ret void75}76 77define <4 x float> @testv4i16(<2 x float> %l1) {78; CHECK-LABEL: testv4i16:79; CHECK: ; %bb.0:80; CHECK-NEXT: movi.4h v1, #1681; CHECK-NEXT: ; kill: def $d0 killed $d0 def $q082; CHECK-NEXT: mov.d v1[1], v0[0]83; CHECK-NEXT: mov.16b v0, v184; CHECK-NEXT: ret85 %l2 = shufflevector <2 x float> <float 0x37E0001000000000, float 0x37E0001000000000>, <2 x float> %l1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>86 ret <4 x float> %l287}88