brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 97dc8f5 Raw
106 lines · plain
1; RUN: llc -mtriple=aarch64-linux-gnu -stop-after=instruction-select < %s | FileCheck %s2 3%struct.__neon_float32x2x2_t = type { <2 x float>,  <2 x float> }4%struct.__neon_float32x2x3_t = type { <2 x float>,  <2 x float>,  <2 x float> }5%struct.__neon_float32x2x4_t = type { <2 x float>,  <2 x float>, <2 x float>,  <2 x float> }6 7declare %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld2.v2f32.p0(ptr)8declare %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld3.v2f32.p0(ptr)9declare %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld4.v2f32.p0(ptr)10 11declare %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld1x2.v2f32.p0(ptr)12declare %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld1x3.v2f32.p0(ptr)13declare %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld1x4.v2f32.p0(ptr)14 15declare %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld2r.v2f32.p0(ptr)16declare %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld3r.v2f32.p0(ptr)17declare %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld4r.v2f32.p0(ptr)18 19declare %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld2lane.v2f32.p0(<2 x float>, <2 x float>, i64, ptr)20declare %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld3lane.v2f32.p0(<2 x float>, <2 x float>, <2 x float>, i64, ptr)21declare %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld4lane.v2f32.p0(<2 x float>, <2 x float>, <2 x float>, <2 x float>, i64, ptr)22 23 24define %struct.__neon_float32x2x2_t @test_ld2(ptr %addr) {25  ; CHECK-LABEL: name: test_ld226  ; CHECK: LD2Twov2s {{.*}} :: (load (s128) {{.*}})27  %val = call %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld2.v2f32.p0(ptr %addr)28  ret %struct.__neon_float32x2x2_t %val29}30 31define %struct.__neon_float32x2x3_t @test_ld3(ptr %addr) {32  ; CHECK-LABEL: name: test_ld333  ; CHECK: LD3Threev2s {{.*}} :: (load (s192) {{.*}})34  %val = call %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld3.v2f32.p0(ptr %addr)35  ret %struct.__neon_float32x2x3_t %val36}37 38define %struct.__neon_float32x2x4_t @test_ld4(ptr %addr) {39  ; CHECK-LABEL: name: test_ld440  ; CHECK: LD4Fourv2s {{.*}} :: (load (s256) {{.*}})41  %val = call %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld4.v2f32.p0(ptr %addr)42  ret %struct.__neon_float32x2x4_t %val43}44 45define %struct.__neon_float32x2x2_t @test_ld1x2(ptr %addr) {46  ; CHECK-LABEL: name: test_ld1x247  ; CHECK: LD1Twov2s {{.*}} :: (load (s128) {{.*}})48  %val = call %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld1x2.v2f32.p0(ptr %addr)49  ret %struct.__neon_float32x2x2_t %val50}51 52define %struct.__neon_float32x2x3_t @test_ld1x3(ptr %addr) {53  ; CHECK-LABEL: name: test_ld1x354  ; CHECK: LD1Threev2s {{.*}} :: (load (s192) {{.*}})55  %val = call %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld1x3.v2f32.p0(ptr %addr)56  ret %struct.__neon_float32x2x3_t %val57}58 59define %struct.__neon_float32x2x4_t @test_ld1x4(ptr %addr) {60  ; CHECK-LABEL: name: test_ld1x461  ; CHECK: LD1Fourv2s {{.*}} :: (load (s256) {{.*}})62  %val = call %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld1x4.v2f32.p0(ptr %addr)63  ret %struct.__neon_float32x2x4_t %val64}65 66define %struct.__neon_float32x2x2_t @test_ld2r(ptr %addr) {67  ; CHECK-LABEL: name: test_ld2r68  ; CHECK: LD2Rv2s {{.*}} :: (load (s64) {{.*}})69  %val = call %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld2r.v2f32.p0(ptr %addr)70  ret %struct.__neon_float32x2x2_t %val71}72 73define %struct.__neon_float32x2x3_t @test_ld3r(ptr %addr) {74  ; CHECK-LABEL: name: test_ld3r75  ; CHECK: LD3Rv2s {{.*}} :: (load (s96) {{.*}})76  %val = call %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld3r.v2f32.p0(ptr %addr)77  ret %struct.__neon_float32x2x3_t %val78}79 80define %struct.__neon_float32x2x4_t @test_ld4r(ptr %addr) {81  ; CHECK-LABEL: name: test_ld4r82  ; CHECK: LD4Rv2s {{.*}} :: (load (s128) {{.*}})83  %val = call %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld4r.v2f32.p0(ptr %addr)84  ret %struct.__neon_float32x2x4_t %val85}86 87define %struct.__neon_float32x2x2_t @test_ld2lane(<2 x float> %a, <2 x float> %b, ptr %addr) {88  ; CHECK-LABEL: name: test_ld2lane89  ; CHECK: {{.*}} LD2i32 {{.*}}90  %val = call %struct.__neon_float32x2x2_t @llvm.aarch64.neon.ld2lane.v2f32.p0(<2 x float> %a, <2 x float> %b, i64 1, ptr %addr)91  ret %struct.__neon_float32x2x2_t %val92}93 94define %struct.__neon_float32x2x3_t @test_ld3lane(<2 x float> %a, <2 x float> %b, <2 x float> %c, ptr %addr) {95  ; CHECK-LABEL: name: test_ld3lane96  ; CHECK: {{.*}} LD3i32 {{.*}}97  %val = call %struct.__neon_float32x2x3_t @llvm.aarch64.neon.ld3lane.v2f32.p0(<2 x float> %a, <2 x float> %b, <2 x float> %c, i64 1, ptr %addr)98  ret %struct.__neon_float32x2x3_t %val99}100 101define %struct.__neon_float32x2x4_t @test_ld4lane(<2 x float> %a, <2 x float> %b, <2 x float> %c, <2 x float> %d, ptr %addr) {102  ; CHECK-LABEL: name: test_ld4lane103  ; CHECK: {{.*}} LD4i32 {{.*}}104  %val = call %struct.__neon_float32x2x4_t @llvm.aarch64.neon.ld4lane.v2f32.p0(<2 x float> %a, <2 x float> %b, <2 x float> %c, <2 x float> %d, i64 1, ptr %addr)105  ret %struct.__neon_float32x2x4_t %val106}