brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.6 KiB · 812966c Raw
680 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=hexagon < %s | FileCheck %s3 4declare <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1, ptr, i32)5declare <32 x i32> @llvm.hexagon.V6.vL32b.npred.ai.128B(i1, ptr, i32)6declare <32 x i32> @llvm.hexagon.V6.vL32b.nt.pred.ai.128B(i1, ptr, i32)7declare <32 x i32> @llvm.hexagon.V6.vL32b.nt.npred.ai.128B(i1, ptr, i32)8 9declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.pred.pi.128B(i1, ptr, i32)10declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.npred.pi.128B(i1, ptr, i32)11declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.pred.pi.128B(i1, ptr, i32)12declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.npred.pi.128B(i1, ptr, i32)13 14declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.pred.ppu.128B(i1, ptr, i32)15declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.npred.ppu.128B(i1, ptr, i32)16declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.pred.ppu.128B(i1, ptr, i32)17declare { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.npred.ppu.128B(i1, ptr, i32)18 19declare void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1, ptr, i32, <32 x i32>)20declare void @llvm.hexagon.V6.vS32b.npred.ai.128B(i1, ptr, i32, <32 x i32>)21declare void @llvm.hexagon.V6.vS32Ub.pred.ai.128B(i1, ptr, i32, <32 x i32>)22declare void @llvm.hexagon.V6.vS32Ub.npred.ai.128B(i1, ptr, i32, <32 x i32>)23declare void @llvm.hexagon.V6.vS32b.nt.pred.ai.128B(i1, ptr, i32, <32 x i32>)24declare void @llvm.hexagon.V6.vS32b.nt.npred.ai.128B(i1, ptr, i32, <32 x i32>)25 26declare ptr @llvm.hexagon.V6.vS32b.pred.pi.128B(i1, ptr, i32, <32 x i32>)27declare ptr @llvm.hexagon.V6.vS32b.npred.pi.128B(i1, ptr, i32, <32 x i32>)28declare ptr @llvm.hexagon.V6.vS32Ub.pred.pi.128B(i1, ptr, i32, <32 x i32>)29declare ptr @llvm.hexagon.V6.vS32Ub.npred.pi.128B(i1, ptr, i32, <32 x i32>)30declare ptr @llvm.hexagon.V6.vS32b.nt.pred.pi.128B(i1, ptr, i32, <32 x i32>)31declare ptr @llvm.hexagon.V6.vS32b.nt.npred.pi.128B(i1, ptr, i32, <32 x i32>)32 33declare ptr @llvm.hexagon.V6.vS32b.pred.ppu.128B(i1, ptr, i32, <32 x i32>)34declare ptr @llvm.hexagon.V6.vS32b.npred.ppu.128B(i1, ptr, i32, <32 x i32>)35declare ptr @llvm.hexagon.V6.vS32Ub.pred.ppu.128B(i1, ptr, i32, <32 x i32>)36declare ptr @llvm.hexagon.V6.vS32Ub.npred.ppu.128B(i1, ptr, i32, <32 x i32>)37declare ptr @llvm.hexagon.V6.vS32b.nt.pred.ppu.128B(i1, ptr, i32, <32 x i32>)38declare ptr @llvm.hexagon.V6.vS32b.nt.npred.ppu.128B(i1, ptr, i32, <32 x i32>)39 40 41define <32 x i32> @f0(i32 %a0, ptr %a1) #0 {42; CHECK-LABEL: f0:43; CHECK:       // %bb.0: // %b044; CHECK-NEXT:    {45; CHECK-NEXT:     p0 = cmp.eq(r0,#0)46; CHECK-NEXT:    }47; CHECK-NEXT:    {48; CHECK-NEXT:     if (p0) v0 = vmem(r1+#3)49; CHECK-NEXT:    }50; CHECK-NEXT:    {51; CHECK-NEXT:     jumpr r3152; CHECK-NEXT:    }53b0:54  %v0 = icmp eq i32 %a0, 055  %v1 = call <32 x i32> @llvm.hexagon.V6.vL32b.pred.ai.128B(i1 %v0, ptr %a1, i32 384)56  ret <32 x i32> %v157}58 59define <32 x i32> @f1(i32 %a0, ptr %a1) #0 {60; CHECK-LABEL: f1:61; CHECK:       // %bb.0: // %b062; CHECK-NEXT:    {63; CHECK-NEXT:     p0 = cmp.eq(r0,#0)64; CHECK-NEXT:    }65; CHECK-NEXT:    {66; CHECK-NEXT:     if (!p0) v0 = vmem(r1+#3)67; CHECK-NEXT:    }68; CHECK-NEXT:    {69; CHECK-NEXT:     jumpr r3170; CHECK-NEXT:    }71b0:72  %v0 = icmp eq i32 %a0, 073  %v1 = call <32 x i32> @llvm.hexagon.V6.vL32b.npred.ai.128B(i1 %v0, ptr %a1, i32 384)74  ret <32 x i32> %v175}76 77define <32 x i32> @f2(i32 %a0, ptr %a1) #0 {78; CHECK-LABEL: f2:79; CHECK:       // %bb.0: // %b080; CHECK-NEXT:    {81; CHECK-NEXT:     p0 = cmp.eq(r0,#0)82; CHECK-NEXT:    }83; CHECK-NEXT:    {84; CHECK-NEXT:     if (p0) v0 = vmem(r1+#3):nt85; CHECK-NEXT:    }86; CHECK-NEXT:    {87; CHECK-NEXT:     jumpr r3188; CHECK-NEXT:    }89b0:90  %v0 = icmp eq i32 %a0, 091  %v1 = call <32 x i32> @llvm.hexagon.V6.vL32b.nt.pred.ai.128B(i1 %v0, ptr %a1, i32 384)92  ret <32 x i32> %v193}94 95define <32 x i32> @f3(i32 %a0, ptr %a1) #0 {96; CHECK-LABEL: f3:97; CHECK:       // %bb.0: // %b098; CHECK-NEXT:    {99; CHECK-NEXT:     p0 = cmp.eq(r0,#0)100; CHECK-NEXT:    }101; CHECK-NEXT:    {102; CHECK-NEXT:     if (!p0) v0 = vmem(r1+#3):nt103; CHECK-NEXT:    }104; CHECK-NEXT:    {105; CHECK-NEXT:     jumpr r31106; CHECK-NEXT:    }107b0:108  %v0 = icmp eq i32 %a0, 0109  %v1 = call <32 x i32> @llvm.hexagon.V6.vL32b.nt.npred.ai.128B(i1 %v0, ptr %a1, i32 384)110  ret <32 x i32> %v1111}112 113define ptr @f4(i32 %a0, ptr %a1) #0 {114; CHECK-LABEL: f4:115; CHECK:       // %bb.0: // %b0116; CHECK-NEXT:    {117; CHECK-NEXT:     p0 = cmp.eq(r0,#0)118; CHECK-NEXT:    }119; CHECK-NEXT:    {120; CHECK-NEXT:     r0 = r1121; CHECK-NEXT:    }122; CHECK-NEXT:    {123; CHECK-NEXT:     if (p0) v0 = vmem(r0++#3)124; CHECK-NEXT:    }125; CHECK-NEXT:    {126; CHECK-NEXT:     jumpr r31127; CHECK-NEXT:    }128b0:129  %v0 = icmp eq i32 %a0, 0130  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.pred.pi.128B(i1 %v0, ptr %a1, i32 384)131  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1132  ret ptr %v2133}134 135define ptr @f5(i32 %a0, ptr %a1) #0 {136; CHECK-LABEL: f5:137; CHECK:       // %bb.0: // %b0138; CHECK-NEXT:    {139; CHECK-NEXT:     p0 = cmp.eq(r0,#0)140; CHECK-NEXT:    }141; CHECK-NEXT:    {142; CHECK-NEXT:     r0 = r1143; CHECK-NEXT:    }144; CHECK-NEXT:    {145; CHECK-NEXT:     if (!p0) v0 = vmem(r0++#3)146; CHECK-NEXT:    }147; CHECK-NEXT:    {148; CHECK-NEXT:     jumpr r31149; CHECK-NEXT:    }150b0:151  %v0 = icmp eq i32 %a0, 0152  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.npred.pi.128B(i1 %v0, ptr %a1, i32 384)153  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1154  ret ptr %v2155}156 157define ptr @f6(i32 %a0, ptr %a1) #0 {158; CHECK-LABEL: f6:159; CHECK:       // %bb.0: // %b0160; CHECK-NEXT:    {161; CHECK-NEXT:     p0 = cmp.eq(r0,#0)162; CHECK-NEXT:    }163; CHECK-NEXT:    {164; CHECK-NEXT:     r0 = r1165; CHECK-NEXT:    }166; CHECK-NEXT:    {167; CHECK-NEXT:     if (p0) v0 = vmem(r0++#3):nt168; CHECK-NEXT:    }169; CHECK-NEXT:    {170; CHECK-NEXT:     jumpr r31171; CHECK-NEXT:    }172b0:173  %v0 = icmp eq i32 %a0, 0174  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.pred.pi.128B(i1 %v0, ptr %a1, i32 384)175  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1176  ret ptr %v2177}178 179define ptr @f7(i32 %a0, ptr %a1) #0 {180; CHECK-LABEL: f7:181; CHECK:       // %bb.0: // %b0182; CHECK-NEXT:    {183; CHECK-NEXT:     p0 = cmp.eq(r0,#0)184; CHECK-NEXT:    }185; CHECK-NEXT:    {186; CHECK-NEXT:     r0 = r1187; CHECK-NEXT:    }188; CHECK-NEXT:    {189; CHECK-NEXT:     if (!p0) v0 = vmem(r0++#3):nt190; CHECK-NEXT:    }191; CHECK-NEXT:    {192; CHECK-NEXT:     jumpr r31193; CHECK-NEXT:    }194b0:195  %v0 = icmp eq i32 %a0, 0196  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.npred.pi.128B(i1 %v0, ptr %a1, i32 384)197  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1198  ret ptr %v2199}200 201define ptr @f8(i32 %a0, ptr %a1, i32 %a2) #0 {202; CHECK-LABEL: f8:203; CHECK:       // %bb.0: // %b0204; CHECK-NEXT:    {205; CHECK-NEXT:     p0 = cmp.eq(r0,#0)206; CHECK-NEXT:    }207; CHECK-NEXT:    {208; CHECK-NEXT:     r0 = r1209; CHECK-NEXT:    }210; CHECK-NEXT:    {211; CHECK-NEXT:     m0 = r2212; CHECK-NEXT:    }213; CHECK-NEXT:    {214; CHECK-NEXT:     if (p0) v0 = vmem(r0++m0)215; CHECK-NEXT:    }216; CHECK-NEXT:    {217; CHECK-NEXT:     jumpr r31218; CHECK-NEXT:    }219b0:220  %v0 = icmp eq i32 %a0, 0221  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.pred.ppu.128B(i1 %v0, ptr %a1, i32 %a2)222  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1223  ret ptr %v2224}225 226define ptr @f9(i32 %a0, ptr %a1, i32 %a2) #0 {227; CHECK-LABEL: f9:228; CHECK:       // %bb.0: // %b0229; CHECK-NEXT:    {230; CHECK-NEXT:     p0 = cmp.eq(r0,#0)231; CHECK-NEXT:    }232; CHECK-NEXT:    {233; CHECK-NEXT:     r0 = r1234; CHECK-NEXT:    }235; CHECK-NEXT:    {236; CHECK-NEXT:     m0 = r2237; CHECK-NEXT:    }238; CHECK-NEXT:    {239; CHECK-NEXT:     if (!p0) v0 = vmem(r0++m0)240; CHECK-NEXT:    }241; CHECK-NEXT:    {242; CHECK-NEXT:     jumpr r31243; CHECK-NEXT:    }244b0:245  %v0 = icmp eq i32 %a0, 0246  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.npred.ppu.128B(i1 %v0, ptr %a1, i32 %a2)247  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1248  ret ptr %v2249}250 251define ptr @f10(i32 %a0, ptr %a1, i32 %a2) #0 {252; CHECK-LABEL: f10:253; CHECK:       // %bb.0: // %b0254; CHECK-NEXT:    {255; CHECK-NEXT:     p0 = cmp.eq(r0,#0)256; CHECK-NEXT:    }257; CHECK-NEXT:    {258; CHECK-NEXT:     r0 = r1259; CHECK-NEXT:    }260; CHECK-NEXT:    {261; CHECK-NEXT:     m0 = r2262; CHECK-NEXT:    }263; CHECK-NEXT:    {264; CHECK-NEXT:     if (p0) v0 = vmem(r0++m0):nt265; CHECK-NEXT:    }266; CHECK-NEXT:    {267; CHECK-NEXT:     jumpr r31268; CHECK-NEXT:    }269b0:270  %v0 = icmp eq i32 %a0, 0271  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.pred.ppu.128B(i1 %v0, ptr %a1, i32 %a2)272  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1273  ret ptr %v2274}275 276define ptr @f11(i32 %a0, ptr %a1, i32 %a2) #0 {277; CHECK-LABEL: f11:278; CHECK:       // %bb.0: // %b0279; CHECK-NEXT:    {280; CHECK-NEXT:     p0 = cmp.eq(r0,#0)281; CHECK-NEXT:    }282; CHECK-NEXT:    {283; CHECK-NEXT:     r0 = r1284; CHECK-NEXT:    }285; CHECK-NEXT:    {286; CHECK-NEXT:     m0 = r2287; CHECK-NEXT:    }288; CHECK-NEXT:    {289; CHECK-NEXT:     if (!p0) v0 = vmem(r0++m0):nt290; CHECK-NEXT:    }291; CHECK-NEXT:    {292; CHECK-NEXT:     jumpr r31293; CHECK-NEXT:    }294b0:295  %v0 = icmp eq i32 %a0, 0296  %v1 = call { <32 x i32>, ptr } @llvm.hexagon.V6.vL32b.nt.npred.ppu.128B(i1 %v0, ptr %a1, i32 %a2)297  %v2 = extractvalue { <32 x i32>, ptr } %v1, 1298  ret ptr %v2299}300 301define void @f12(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {302; CHECK-LABEL: f12:303; CHECK:       // %bb.0: // %b0304; CHECK-NEXT:    {305; CHECK-NEXT:     p0 = cmp.eq(r0,#0)306; CHECK-NEXT:    }307; CHECK-NEXT:    {308; CHECK-NEXT:     if (p0) vmem(r1+#-3) = v0309; CHECK-NEXT:    }310; CHECK-NEXT:    {311; CHECK-NEXT:     jumpr r31312; CHECK-NEXT:    }313b0:314  %v0 = icmp eq i32 %a0, 0315  call void @llvm.hexagon.V6.vS32b.pred.ai.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)316  ret void317}318 319define void @f13(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {320; CHECK-LABEL: f13:321; CHECK:       // %bb.0: // %b0322; CHECK-NEXT:    {323; CHECK-NEXT:     p0 = cmp.eq(r0,#0)324; CHECK-NEXT:    }325; CHECK-NEXT:    {326; CHECK-NEXT:     if (!p0) vmem(r1+#-3) = v0327; CHECK-NEXT:    }328; CHECK-NEXT:    {329; CHECK-NEXT:     jumpr r31330; CHECK-NEXT:    }331b0:332  %v0 = icmp eq i32 %a0, 0333  call void @llvm.hexagon.V6.vS32b.npred.ai.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)334  ret void335}336 337define void @f14(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {338; CHECK-LABEL: f14:339; CHECK:       // %bb.0: // %b0340; CHECK-NEXT:    {341; CHECK-NEXT:     p0 = cmp.eq(r0,#0)342; CHECK-NEXT:    }343; CHECK-NEXT:    {344; CHECK-NEXT:     if (p0) vmemu(r1+#-3) = v0345; CHECK-NEXT:    }346; CHECK-NEXT:    {347; CHECK-NEXT:     jumpr r31348; CHECK-NEXT:    }349b0:350  %v0 = icmp eq i32 %a0, 0351  call void @llvm.hexagon.V6.vS32Ub.pred.ai.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)352  ret void353}354 355define void @f15(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {356; CHECK-LABEL: f15:357; CHECK:       // %bb.0: // %b0358; CHECK-NEXT:    {359; CHECK-NEXT:     p0 = cmp.eq(r0,#0)360; CHECK-NEXT:    }361; CHECK-NEXT:    {362; CHECK-NEXT:     if (!p0) vmemu(r1+#-3) = v0363; CHECK-NEXT:    }364; CHECK-NEXT:    {365; CHECK-NEXT:     jumpr r31366; CHECK-NEXT:    }367b0:368  %v0 = icmp eq i32 %a0, 0369  call void @llvm.hexagon.V6.vS32Ub.npred.ai.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)370  ret void371}372 373define void @f16(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {374; CHECK-LABEL: f16:375; CHECK:       // %bb.0: // %b0376; CHECK-NEXT:    {377; CHECK-NEXT:     p0 = cmp.eq(r0,#0)378; CHECK-NEXT:    }379; CHECK-NEXT:    {380; CHECK-NEXT:     if (p0) vmem(r1+#-3):nt = v0381; CHECK-NEXT:    }382; CHECK-NEXT:    {383; CHECK-NEXT:     jumpr r31384; CHECK-NEXT:    }385b0:386  %v0 = icmp eq i32 %a0, 0387  call void @llvm.hexagon.V6.vS32b.nt.pred.ai.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)388  ret void389}390 391define void @f17(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {392; CHECK-LABEL: f17:393; CHECK:       // %bb.0: // %b0394; CHECK-NEXT:    {395; CHECK-NEXT:     p0 = cmp.eq(r0,#0)396; CHECK-NEXT:    }397; CHECK-NEXT:    {398; CHECK-NEXT:     if (!p0) vmem(r1+#-3):nt = v0399; CHECK-NEXT:    }400; CHECK-NEXT:    {401; CHECK-NEXT:     jumpr r31402; CHECK-NEXT:    }403b0:404  %v0 = icmp eq i32 %a0, 0405  call void @llvm.hexagon.V6.vS32b.nt.npred.ai.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)406  ret void407}408 409define ptr @f18(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {410; CHECK-LABEL: f18:411; CHECK:       // %bb.0: // %b0412; CHECK-NEXT:    {413; CHECK-NEXT:     p0 = cmp.eq(r0,#0)414; CHECK-NEXT:    }415; CHECK-NEXT:    {416; CHECK-NEXT:     r0 = r1417; CHECK-NEXT:    }418; CHECK-NEXT:    {419; CHECK-NEXT:     if (p0) vmem(r0++#-3) = v0420; CHECK-NEXT:    }421; CHECK-NEXT:    {422; CHECK-NEXT:     jumpr r31423; CHECK-NEXT:    }424b0:425  %v0 = icmp eq i32 %a0, 0426  %v1 = call ptr @llvm.hexagon.V6.vS32b.pred.pi.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)427  ret ptr %v1428}429 430define ptr @f19(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {431; CHECK-LABEL: f19:432; CHECK:       // %bb.0: // %b0433; CHECK-NEXT:    {434; CHECK-NEXT:     p0 = cmp.eq(r0,#0)435; CHECK-NEXT:    }436; CHECK-NEXT:    {437; CHECK-NEXT:     r0 = r1438; CHECK-NEXT:    }439; CHECK-NEXT:    {440; CHECK-NEXT:     if (!p0) vmem(r0++#-3) = v0441; CHECK-NEXT:    }442; CHECK-NEXT:    {443; CHECK-NEXT:     jumpr r31444; CHECK-NEXT:    }445b0:446  %v0 = icmp eq i32 %a0, 0447  %v1 = call ptr @llvm.hexagon.V6.vS32b.npred.pi.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)448  ret ptr %v1449}450 451define ptr @f20(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {452; CHECK-LABEL: f20:453; CHECK:       // %bb.0: // %b0454; CHECK-NEXT:    {455; CHECK-NEXT:     p0 = cmp.eq(r0,#0)456; CHECK-NEXT:    }457; CHECK-NEXT:    {458; CHECK-NEXT:     r0 = r1459; CHECK-NEXT:    }460; CHECK-NEXT:    {461; CHECK-NEXT:     if (p0) vmemu(r0++#-3) = v0462; CHECK-NEXT:    }463; CHECK-NEXT:    {464; CHECK-NEXT:     jumpr r31465; CHECK-NEXT:    }466b0:467  %v0 = icmp eq i32 %a0, 0468  %v1 = call ptr @llvm.hexagon.V6.vS32Ub.pred.pi.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)469  ret ptr %v1470}471 472define ptr @f21(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {473; CHECK-LABEL: f21:474; CHECK:       // %bb.0: // %b0475; CHECK-NEXT:    {476; CHECK-NEXT:     p0 = cmp.eq(r0,#0)477; CHECK-NEXT:    }478; CHECK-NEXT:    {479; CHECK-NEXT:     r0 = r1480; CHECK-NEXT:    }481; CHECK-NEXT:    {482; CHECK-NEXT:     if (!p0) vmemu(r0++#-3) = v0483; CHECK-NEXT:    }484; CHECK-NEXT:    {485; CHECK-NEXT:     jumpr r31486; CHECK-NEXT:    }487b0:488  %v0 = icmp eq i32 %a0, 0489  %v1 = call ptr @llvm.hexagon.V6.vS32Ub.npred.pi.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)490  ret ptr %v1491}492 493define ptr @f22(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {494; CHECK-LABEL: f22:495; CHECK:       // %bb.0: // %b0496; CHECK-NEXT:    {497; CHECK-NEXT:     p0 = cmp.eq(r0,#0)498; CHECK-NEXT:    }499; CHECK-NEXT:    {500; CHECK-NEXT:     r0 = r1501; CHECK-NEXT:    }502; CHECK-NEXT:    {503; CHECK-NEXT:     if (p0) vmem(r0++#-3):nt = v0504; CHECK-NEXT:    }505; CHECK-NEXT:    {506; CHECK-NEXT:     jumpr r31507; CHECK-NEXT:    }508b0:509  %v0 = icmp eq i32 %a0, 0510  %v1 = call ptr @llvm.hexagon.V6.vS32b.nt.pred.pi.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)511  ret ptr %v1512}513 514define ptr @f23(i32 %a0, ptr %a1, <32 x i32> %a2) #0 {515; CHECK-LABEL: f23:516; CHECK:       // %bb.0: // %b0517; CHECK-NEXT:    {518; CHECK-NEXT:     p0 = cmp.eq(r0,#0)519; CHECK-NEXT:    }520; CHECK-NEXT:    {521; CHECK-NEXT:     r0 = r1522; CHECK-NEXT:    }523; CHECK-NEXT:    {524; CHECK-NEXT:     if (!p0) vmem(r0++#-3):nt = v0525; CHECK-NEXT:    }526; CHECK-NEXT:    {527; CHECK-NEXT:     jumpr r31528; CHECK-NEXT:    }529b0:530  %v0 = icmp eq i32 %a0, 0531  %v1 = call ptr @llvm.hexagon.V6.vS32b.nt.npred.pi.128B(i1 %v0, ptr %a1, i32 -384, <32 x i32> %a2)532  ret ptr %v1533}534 535define ptr @f24(i32 %a0, ptr %a1, i32 %a2, <32 x i32> %a3) #0 {536; CHECK-LABEL: f24:537; CHECK:       // %bb.0: // %b0538; CHECK-NEXT:    {539; CHECK-NEXT:     p0 = cmp.eq(r0,#0)540; CHECK-NEXT:    }541; CHECK-NEXT:    {542; CHECK-NEXT:     r0 = r1543; CHECK-NEXT:    }544; CHECK-NEXT:    {545; CHECK-NEXT:     m0 = r2546; CHECK-NEXT:    }547; CHECK-NEXT:    {548; CHECK-NEXT:     if (p0) vmem(r0++m0) = v0549; CHECK-NEXT:    }550; CHECK-NEXT:    {551; CHECK-NEXT:     jumpr r31552; CHECK-NEXT:    }553b0:554  %v0 = icmp eq i32 %a0, 0555  %v1 = call ptr @llvm.hexagon.V6.vS32b.pred.ppu.128B(i1 %v0, ptr %a1, i32 %a2, <32 x i32> %a3)556  ret ptr %v1557}558 559define ptr @f25(i32 %a0, ptr %a1, i32 %a2, <32 x i32> %a3) #0 {560; CHECK-LABEL: f25:561; CHECK:       // %bb.0: // %b0562; CHECK-NEXT:    {563; CHECK-NEXT:     p0 = cmp.eq(r0,#0)564; CHECK-NEXT:    }565; CHECK-NEXT:    {566; CHECK-NEXT:     r0 = r1567; CHECK-NEXT:    }568; CHECK-NEXT:    {569; CHECK-NEXT:     m0 = r2570; CHECK-NEXT:    }571; CHECK-NEXT:    {572; CHECK-NEXT:     if (!p0) vmem(r0++m0) = v0573; CHECK-NEXT:    }574; CHECK-NEXT:    {575; CHECK-NEXT:     jumpr r31576; CHECK-NEXT:    }577b0:578  %v0 = icmp eq i32 %a0, 0579  %v1 = call ptr @llvm.hexagon.V6.vS32b.npred.ppu.128B(i1 %v0, ptr %a1, i32 %a2, <32 x i32> %a3)580  ret ptr %v1581}582 583define ptr @f26(i32 %a0, ptr %a1, i32 %a2, <32 x i32> %a3) #0 {584; CHECK-LABEL: f26:585; CHECK:       // %bb.0: // %b0586; CHECK-NEXT:    {587; CHECK-NEXT:     p0 = cmp.eq(r0,#0)588; CHECK-NEXT:    }589; CHECK-NEXT:    {590; CHECK-NEXT:     r0 = r1591; CHECK-NEXT:    }592; CHECK-NEXT:    {593; CHECK-NEXT:     m0 = r2594; CHECK-NEXT:    }595; CHECK-NEXT:    {596; CHECK-NEXT:     if (p0) vmemu(r0++m0) = v0597; CHECK-NEXT:    }598; CHECK-NEXT:    {599; CHECK-NEXT:     jumpr r31600; CHECK-NEXT:    }601b0:602  %v0 = icmp eq i32 %a0, 0603  %v1 = call ptr @llvm.hexagon.V6.vS32Ub.pred.ppu.128B(i1 %v0, ptr %a1, i32 %a2, <32 x i32> %a3)604  ret ptr %v1605}606 607define ptr @f27(i32 %a0, ptr %a1, i32 %a2, <32 x i32> %a3) #0 {608; CHECK-LABEL: f27:609; CHECK:       // %bb.0: // %b0610; CHECK-NEXT:    {611; CHECK-NEXT:     p0 = cmp.eq(r0,#0)612; CHECK-NEXT:    }613; CHECK-NEXT:    {614; CHECK-NEXT:     r0 = r1615; CHECK-NEXT:    }616; CHECK-NEXT:    {617; CHECK-NEXT:     m0 = r2618; CHECK-NEXT:    }619; CHECK-NEXT:    {620; CHECK-NEXT:     if (!p0) vmemu(r0++m0) = v0621; CHECK-NEXT:    }622; CHECK-NEXT:    {623; CHECK-NEXT:     jumpr r31624; CHECK-NEXT:    }625b0:626  %v0 = icmp eq i32 %a0, 0627  %v1 = call ptr @llvm.hexagon.V6.vS32Ub.npred.ppu.128B(i1 %v0, ptr %a1, i32 %a2, <32 x i32> %a3)628  ret ptr %v1629}630 631define ptr @f28(i32 %a0, ptr %a1, i32 %a2, <32 x i32> %a3) #0 {632; CHECK-LABEL: f28:633; CHECK:       // %bb.0: // %b0634; CHECK-NEXT:    {635; CHECK-NEXT:     p0 = cmp.eq(r0,#0)636; CHECK-NEXT:    }637; CHECK-NEXT:    {638; CHECK-NEXT:     r0 = r1639; CHECK-NEXT:    }640; CHECK-NEXT:    {641; CHECK-NEXT:     m0 = r2642; CHECK-NEXT:    }643; CHECK-NEXT:    {644; CHECK-NEXT:     if (p0) vmem(r0++m0):nt = v0645; CHECK-NEXT:    }646; CHECK-NEXT:    {647; CHECK-NEXT:     jumpr r31648; CHECK-NEXT:    }649b0:650  %v0 = icmp eq i32 %a0, 0651  %v1 = call ptr @llvm.hexagon.V6.vS32b.nt.pred.ppu.128B(i1 %v0, ptr %a1, i32 %a2, <32 x i32> %a3)652  ret ptr %v1653}654 655define ptr @f29(i32 %a0, ptr %a1, i32 %a2, <32 x i32> %a3) #0 {656; CHECK-LABEL: f29:657; CHECK:       // %bb.0: // %b0658; CHECK-NEXT:    {659; CHECK-NEXT:     p0 = cmp.eq(r0,#0)660; CHECK-NEXT:    }661; CHECK-NEXT:    {662; CHECK-NEXT:     r0 = r1663; CHECK-NEXT:    }664; CHECK-NEXT:    {665; CHECK-NEXT:     m0 = r2666; CHECK-NEXT:    }667; CHECK-NEXT:    {668; CHECK-NEXT:     if (!p0) vmem(r0++m0):nt = v0669; CHECK-NEXT:    }670; CHECK-NEXT:    {671; CHECK-NEXT:     jumpr r31672; CHECK-NEXT:    }673b0:674  %v0 = icmp eq i32 %a0, 0675  %v1 = call ptr @llvm.hexagon.V6.vS32b.nt.npred.ppu.128B(i1 %v0, ptr %a1, i32 %a2, <32 x i32> %a3)676  ret ptr %v1677}678 679attributes #0 = { nounwind "target-cpu"="hexagonv66" "target-features"="+hvxv66,+hvx-length128b,-packets" }680