brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.3 KiB · 0f41472 Raw
386 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=hexagon < %s | FileCheck %s3 4define void @f0(ptr %a0, ptr %a1) #0 {5; CHECK-LABEL: f0:6; CHECK:       // %bb.0:7; CHECK-NEXT:    {8; CHECK-NEXT:     jumpr r319; CHECK-NEXT:     v0.cur = vmem(r0+#1)10; CHECK-NEXT:     vmem(r1+#2) = v011; CHECK-NEXT:    }12  %v0 = getelementptr <128 x i8>, ptr %a0, i32 113  %v1 = load <128 x i8>, ptr %v0, align 12814  %v2 = getelementptr <128 x i8>, ptr %a1, i32 215  store <128 x i8> %v1, ptr %v2, align 12816  ret void17}18 19define void @f1(ptr %a0, ptr %a1) #0 {20; CHECK-LABEL: f1:21; CHECK:       // %bb.0:22; CHECK-NEXT:    {23; CHECK-NEXT:     jumpr r3124; CHECK-NEXT:     v0.cur = vmem(r0+#1)25; CHECK-NEXT:     vmem(r1+#2) = v026; CHECK-NEXT:    }27  %v0 = getelementptr <64 x i16>, ptr %a0, i32 128  %v1 = load <64 x i16>, ptr %v0, align 12829  %v2 = getelementptr <64 x i16>, ptr %a1, i32 230  store <64 x i16> %v1, ptr %v2, align 12831  ret void32}33 34define void @f2(ptr %a0, ptr %a1) #0 {35; CHECK-LABEL: f2:36; CHECK:       // %bb.0:37; CHECK-NEXT:    {38; CHECK-NEXT:     jumpr r3139; CHECK-NEXT:     v0.cur = vmem(r0+#1)40; CHECK-NEXT:     vmem(r1+#2) = v041; CHECK-NEXT:    }42  %v0 = getelementptr <32 x i32>, ptr %a0, i32 143  %v1 = load <32 x i32>, ptr %v0, align 12844  %v2 = getelementptr <32 x i32>, ptr %a1, i32 245  store <32 x i32> %v1, ptr %v2, align 12846  ret void47}48 49define void @f3(ptr %a0, ptr %a1) #0 {50; CHECK-LABEL: f3:51; CHECK:       // %bb.0:52; CHECK-NEXT:    {53; CHECK-NEXT:     jumpr r3154; CHECK-NEXT:     v0.cur = vmem(r0+#1)55; CHECK-NEXT:     vmem(r1+#2) = v056; CHECK-NEXT:    }57  %v0 = getelementptr <64 x half>, ptr %a0, i32 158  %v1 = load <64 x half>, ptr %v0, align 12859  %v2 = getelementptr <64 x half>, ptr %a1, i32 260  store <64 x half> %v1, ptr %v2, align 12861  ret void62}63 64define void @f4(ptr %a0, ptr %a1) #0 {65; CHECK-LABEL: f4:66; CHECK:       // %bb.0:67; CHECK-NEXT:    {68; CHECK-NEXT:     jumpr r3169; CHECK-NEXT:     v0.cur = vmem(r0+#1)70; CHECK-NEXT:     vmem(r1+#2) = v071; CHECK-NEXT:    }72  %v0 = getelementptr <32 x float>, ptr %a0, i32 173  %v1 = load <32 x float>, ptr %v0, align 12874  %v2 = getelementptr <32 x float>, ptr %a1, i32 275  store <32 x float> %v1, ptr %v2, align 12876  ret void77}78 79define void @f5(ptr %a0, ptr %a1) #0 {80; CHECK-LABEL: f5:81; CHECK:       // %bb.0:82; CHECK-NEXT:    {83; CHECK-NEXT:     v0 = vmemu(r0+#1)84; CHECK-NEXT:    }85; CHECK-NEXT:    {86; CHECK-NEXT:     jumpr r3187; CHECK-NEXT:     vmemu(r1+#2) = v088; CHECK-NEXT:    }89  %v0 = getelementptr <128 x i8>, ptr %a0, i32 190  %v1 = load <128 x i8>, ptr %v0, align 191  %v2 = getelementptr <128 x i8>, ptr %a1, i32 292  store <128 x i8> %v1, ptr %v2, align 193  ret void94}95 96define void @f6(ptr %a0, ptr %a1) #0 {97; CHECK-LABEL: f6:98; CHECK:       // %bb.0:99; CHECK-NEXT:    {100; CHECK-NEXT:     v0 = vmemu(r0+#1)101; CHECK-NEXT:    }102; CHECK-NEXT:    {103; CHECK-NEXT:     jumpr r31104; CHECK-NEXT:     vmemu(r1+#2) = v0105; CHECK-NEXT:    }106  %v0 = getelementptr <64 x i16>, ptr %a0, i32 1107  %v1 = load <64 x i16>, ptr %v0, align 1108  %v2 = getelementptr <64 x i16>, ptr %a1, i32 2109  store <64 x i16> %v1, ptr %v2, align 1110  ret void111}112 113define void @f7(ptr %a0, ptr %a1) #0 {114; CHECK-LABEL: f7:115; CHECK:       // %bb.0:116; CHECK-NEXT:    {117; CHECK-NEXT:     v0 = vmemu(r0+#1)118; CHECK-NEXT:    }119; CHECK-NEXT:    {120; CHECK-NEXT:     jumpr r31121; CHECK-NEXT:     vmemu(r1+#2) = v0122; CHECK-NEXT:    }123  %v0 = getelementptr <32 x i32>, ptr %a0, i32 1124  %v1 = load <32 x i32>, ptr %v0, align 1125  %v2 = getelementptr <32 x i32>, ptr %a1, i32 2126  store <32 x i32> %v1, ptr %v2, align 1127  ret void128}129 130define void @f8(ptr %a0, ptr %a1) #0 {131; CHECK-LABEL: f8:132; CHECK:       // %bb.0:133; CHECK-NEXT:    {134; CHECK-NEXT:     v0 = vmemu(r0+#1)135; CHECK-NEXT:    }136; CHECK-NEXT:    {137; CHECK-NEXT:     jumpr r31138; CHECK-NEXT:     vmemu(r1+#2) = v0139; CHECK-NEXT:    }140  %v0 = getelementptr <64 x half>, ptr %a0, i32 1141  %v1 = load <64 x half>, ptr %v0, align 1142  %v2 = getelementptr <64 x half>, ptr %a1, i32 2143  store <64 x half> %v1, ptr %v2, align 1144  ret void145}146 147define void @f9(ptr %a0, ptr %a1) #0 {148; CHECK-LABEL: f9:149; CHECK:       // %bb.0:150; CHECK-NEXT:    {151; CHECK-NEXT:     v0 = vmemu(r0+#1)152; CHECK-NEXT:    }153; CHECK-NEXT:    {154; CHECK-NEXT:     jumpr r31155; CHECK-NEXT:     vmemu(r1+#2) = v0156; CHECK-NEXT:    }157  %v0 = getelementptr <32 x float>, ptr %a0, i32 1158  %v1 = load <32 x float>, ptr %v0, align 1159  %v2 = getelementptr <32 x float>, ptr %a1, i32 2160  store <32 x float> %v1, ptr %v2, align 1161  ret void162}163 164define void @f10(ptr %a0, ptr %a1) #0 {165; CHECK-LABEL: f10:166; CHECK:       // %bb.0:167; CHECK-NEXT:    {168; CHECK-NEXT:     v0 = vmem(r0+#2)169; CHECK-NEXT:    }170; CHECK-NEXT:    {171; CHECK-NEXT:     v1.cur = vmem(r0+#3)172; CHECK-NEXT:     vmem(r1+#5) = v1173; CHECK-NEXT:    }174; CHECK-NEXT:    {175; CHECK-NEXT:     jumpr r31176; CHECK-NEXT:     vmem(r1+#4) = v0177; CHECK-NEXT:    }178  %v0 = getelementptr <256 x i8>, ptr %a0, i32 1179  %v1 = load <256 x i8>, ptr %v0, align 128180  %v2 = getelementptr <256 x i8>, ptr %a1, i32 2181  store <256 x i8> %v1, ptr %v2, align 128182  ret void183}184 185define void @f11(ptr %a0, ptr %a1) #0 {186; CHECK-LABEL: f11:187; CHECK:       // %bb.0:188; CHECK-NEXT:    {189; CHECK-NEXT:     v0 = vmem(r0+#2)190; CHECK-NEXT:    }191; CHECK-NEXT:    {192; CHECK-NEXT:     v1.cur = vmem(r0+#3)193; CHECK-NEXT:     vmem(r1+#5) = v1194; CHECK-NEXT:    }195; CHECK-NEXT:    {196; CHECK-NEXT:     jumpr r31197; CHECK-NEXT:     vmem(r1+#4) = v0198; CHECK-NEXT:    }199  %v0 = getelementptr <128 x i16>, ptr %a0, i32 1200  %v1 = load <128 x i16>, ptr %v0, align 128201  %v2 = getelementptr <128 x i16>, ptr %a1, i32 2202  store <128 x i16> %v1, ptr %v2, align 128203  ret void204}205 206define void @f12(ptr %a0, ptr %a1) #0 {207; CHECK-LABEL: f12:208; CHECK:       // %bb.0:209; CHECK-NEXT:    {210; CHECK-NEXT:     v0 = vmem(r0+#2)211; CHECK-NEXT:    }212; CHECK-NEXT:    {213; CHECK-NEXT:     v1.cur = vmem(r0+#3)214; CHECK-NEXT:     vmem(r1+#5) = v1215; CHECK-NEXT:    }216; CHECK-NEXT:    {217; CHECK-NEXT:     jumpr r31218; CHECK-NEXT:     vmem(r1+#4) = v0219; CHECK-NEXT:    }220  %v0 = getelementptr <64 x i32>, ptr %a0, i32 1221  %v1 = load <64 x i32>, ptr %v0, align 128222  %v2 = getelementptr <64 x i32>, ptr %a1, i32 2223  store <64 x i32> %v1, ptr %v2, align 128224  ret void225}226 227define void @f13(ptr %a0, ptr %a1) #0 {228; CHECK-LABEL: f13:229; CHECK:       // %bb.0:230; CHECK-NEXT:    {231; CHECK-NEXT:     v0 = vmem(r0+#2)232; CHECK-NEXT:    }233; CHECK-NEXT:    {234; CHECK-NEXT:     v1.cur = vmem(r0+#3)235; CHECK-NEXT:     vmem(r1+#5) = v1236; CHECK-NEXT:    }237; CHECK-NEXT:    {238; CHECK-NEXT:     jumpr r31239; CHECK-NEXT:     vmem(r1+#4) = v0240; CHECK-NEXT:    }241  %v0 = getelementptr <128 x half>, ptr %a0, i32 1242  %v1 = load <128 x half>, ptr %v0, align 128243  %v2 = getelementptr <128 x half>, ptr %a1, i32 2244  store <128 x half> %v1, ptr %v2, align 128245  ret void246}247 248define void @f14(ptr %a0, ptr %a1) #0 {249; CHECK-LABEL: f14:250; CHECK:       // %bb.0:251; CHECK-NEXT:    {252; CHECK-NEXT:     v0 = vmem(r0+#2)253; CHECK-NEXT:    }254; CHECK-NEXT:    {255; CHECK-NEXT:     v1.cur = vmem(r0+#3)256; CHECK-NEXT:     vmem(r1+#5) = v1257; CHECK-NEXT:    }258; CHECK-NEXT:    {259; CHECK-NEXT:     jumpr r31260; CHECK-NEXT:     vmem(r1+#4) = v0261; CHECK-NEXT:    }262  %v0 = getelementptr <64 x float>, ptr %a0, i32 1263  %v1 = load <64 x float>, ptr %v0, align 128264  %v2 = getelementptr <64 x float>, ptr %a1, i32 2265  store <64 x float> %v1, ptr %v2, align 128266  ret void267}268 269define void @f15(ptr %a0, ptr %a1) #0 {270; CHECK-LABEL: f15:271; CHECK:       // %bb.0:272; CHECK-NEXT:    {273; CHECK-NEXT:     v0 = vmemu(r0+#3)274; CHECK-NEXT:    }275; CHECK-NEXT:    {276; CHECK-NEXT:     v1 = vmemu(r0+#2)277; CHECK-NEXT:    }278; CHECK-NEXT:    {279; CHECK-NEXT:     vmemu(r1+#5) = v0280; CHECK-NEXT:    }281; CHECK-NEXT:    {282; CHECK-NEXT:     jumpr r31283; CHECK-NEXT:     vmemu(r1+#4) = v1284; CHECK-NEXT:    }285  %v0 = getelementptr <256 x i8>, ptr %a0, i32 1286  %v1 = load <256 x i8>, ptr %v0, align 1287  %v2 = getelementptr <256 x i8>, ptr %a1, i32 2288  store <256 x i8> %v1, ptr %v2, align 1289  ret void290}291 292define void @f16(ptr %a0, ptr %a1) #0 {293; CHECK-LABEL: f16:294; CHECK:       // %bb.0:295; CHECK-NEXT:    {296; CHECK-NEXT:     v0 = vmemu(r0+#3)297; CHECK-NEXT:    }298; CHECK-NEXT:    {299; CHECK-NEXT:     v1 = vmemu(r0+#2)300; CHECK-NEXT:    }301; CHECK-NEXT:    {302; CHECK-NEXT:     vmemu(r1+#5) = v0303; CHECK-NEXT:    }304; CHECK-NEXT:    {305; CHECK-NEXT:     jumpr r31306; CHECK-NEXT:     vmemu(r1+#4) = v1307; CHECK-NEXT:    }308  %v0 = getelementptr <128 x i16>, ptr %a0, i32 1309  %v1 = load <128 x i16>, ptr %v0, align 1310  %v2 = getelementptr <128 x i16>, ptr %a1, i32 2311  store <128 x i16> %v1, ptr %v2, align 1312  ret void313}314 315define void @f17(ptr %a0, ptr %a1) #0 {316; CHECK-LABEL: f17:317; CHECK:       // %bb.0:318; CHECK-NEXT:    {319; CHECK-NEXT:     v0 = vmemu(r0+#3)320; CHECK-NEXT:    }321; CHECK-NEXT:    {322; CHECK-NEXT:     v1 = vmemu(r0+#2)323; CHECK-NEXT:    }324; CHECK-NEXT:    {325; CHECK-NEXT:     vmemu(r1+#5) = v0326; CHECK-NEXT:    }327; CHECK-NEXT:    {328; CHECK-NEXT:     jumpr r31329; CHECK-NEXT:     vmemu(r1+#4) = v1330; CHECK-NEXT:    }331  %v0 = getelementptr <64 x i32>, ptr %a0, i32 1332  %v1 = load <64 x i32>, ptr %v0, align 1333  %v2 = getelementptr <64 x i32>, ptr %a1, i32 2334  store <64 x i32> %v1, ptr %v2, align 1335  ret void336}337 338define void @f18(ptr %a0, ptr %a1) #0 {339; CHECK-LABEL: f18:340; CHECK:       // %bb.0:341; CHECK-NEXT:    {342; CHECK-NEXT:     v0 = vmemu(r0+#3)343; CHECK-NEXT:    }344; CHECK-NEXT:    {345; CHECK-NEXT:     v1 = vmemu(r0+#2)346; CHECK-NEXT:    }347; CHECK-NEXT:    {348; CHECK-NEXT:     vmemu(r1+#5) = v0349; CHECK-NEXT:    }350; CHECK-NEXT:    {351; CHECK-NEXT:     jumpr r31352; CHECK-NEXT:     vmemu(r1+#4) = v1353; CHECK-NEXT:    }354  %v0 = getelementptr <128 x half>, ptr %a0, i32 1355  %v1 = load <128 x half>, ptr %v0, align 1356  %v2 = getelementptr <128 x half>, ptr %a1, i32 2357  store <128 x half> %v1, ptr %v2, align 1358  ret void359}360 361define void @f19(ptr %a0, ptr %a1) #0 {362; CHECK-LABEL: f19:363; CHECK:       // %bb.0:364; CHECK-NEXT:    {365; CHECK-NEXT:     v0 = vmemu(r0+#3)366; CHECK-NEXT:    }367; CHECK-NEXT:    {368; CHECK-NEXT:     v1 = vmemu(r0+#2)369; CHECK-NEXT:    }370; CHECK-NEXT:    {371; CHECK-NEXT:     vmemu(r1+#5) = v0372; CHECK-NEXT:    }373; CHECK-NEXT:    {374; CHECK-NEXT:     jumpr r31375; CHECK-NEXT:     vmemu(r1+#4) = v1376; CHECK-NEXT:    }377  %v0 = getelementptr <64 x float>, ptr %a0, i32 1378  %v1 = load <64 x float>, ptr %v0, align 1379  %v2 = getelementptr <64 x float>, ptr %a1, i32 2380  store <64 x float> %v1, ptr %v2, align 1381  ret void382}383 384 385attributes #0 = { nounwind "target-cpu"="hexagonv69" "target-features"="+hvxv69,+hvx-length128b,+hvx-qfloat" }386