brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · eb77850 Raw
219 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=hexagon < %s | FileCheck %s3 4define void @f0(ptr %a0, ptr %a1, ptr %a2, ptr %a3) {5; CHECK-LABEL: f0:6; CHECK:         .cfi_startproc7; CHECK-NEXT:  // %bb.0: // %b08; CHECK-NEXT:    {9; CHECK-NEXT:     r0 = memub(r0+#0)10; CHECK-NEXT:    }11; CHECK-NEXT:    {12; CHECK-NEXT:     p0 = r013; CHECK-NEXT:    }14; CHECK-NEXT:    {15; CHECK-NEXT:     r0 = mux(p0,r1,r2)16; CHECK-NEXT:    }17; CHECK-NEXT:    {18; CHECK-NEXT:     r0 = memub(r0+#0)19; CHECK-NEXT:    }20; CHECK-NEXT:    {21; CHECK-NEXT:     p0 = r022; CHECK-NEXT:    }23; CHECK-NEXT:    {24; CHECK-NEXT:     r0 = mux(p0,#1,#0)25; CHECK-NEXT:     jumpr r3126; CHECK-NEXT:     memb(r3+#0) = r0.new27; CHECK-NEXT:    }28b0:29  %v0 = load i1, ptr %a030  %v1 = load i1, ptr %a131  %v2 = load i1, ptr %a232  %v3 = select i1 %v0, i1 %v1, i1 %v233  store i1 %v3, ptr %a334  ret void35}36 37define void @f1(ptr %a0, ptr %a1, ptr %a2, ptr %a3) {38; CHECK-LABEL: f1:39; CHECK:         .cfi_startproc40; CHECK-NEXT:  // %bb.0: // %b041; CHECK-NEXT:    {42; CHECK-NEXT:     r0 = memub(r0+#0)43; CHECK-NEXT:    }44; CHECK-NEXT:    {45; CHECK-NEXT:     p0 = r046; CHECK-NEXT:    }47; CHECK-NEXT:    {48; CHECK-NEXT:     r0 = mux(p0,r1,r2)49; CHECK-NEXT:    }50; CHECK-NEXT:    {51; CHECK-NEXT:     jumpr r3152; CHECK-NEXT:     r0 = memub(r0+#0)53; CHECK-NEXT:     memb(r3+#0) = r0.new54; CHECK-NEXT:    }55b0:56  %v0 = load i1, ptr %a057  %v1 = load <2 x i1>, ptr %a158  %v2 = load <2 x i1>, ptr %a259  %v3 = select i1 %v0, <2 x i1> %v1, <2 x i1> %v260  store <2 x i1> %v3, ptr %a361  ret void62}63 64define void @f2(ptr %a0, ptr %a1, ptr %a2, ptr %a3) {65; CHECK-LABEL: f2:66; CHECK:         .cfi_startproc67; CHECK-NEXT:  // %bb.0: // %b068; CHECK-NEXT:    {69; CHECK-NEXT:     r0 = memub(r0+#0)70; CHECK-NEXT:    }71; CHECK-NEXT:    {72; CHECK-NEXT:     p0 = r073; CHECK-NEXT:    }74; CHECK-NEXT:    {75; CHECK-NEXT:     r0 = mux(p0,r1,r2)76; CHECK-NEXT:    }77; CHECK-NEXT:    {78; CHECK-NEXT:     jumpr r3179; CHECK-NEXT:     r0 = memub(r0+#0)80; CHECK-NEXT:     memb(r3+#0) = r0.new81; CHECK-NEXT:    }82b0:83  %v0 = load i1, ptr %a084  %v1 = load <4 x i1>, ptr %a185  %v2 = load <4 x i1>, ptr %a286  %v3 = select i1 %v0, <4 x i1> %v1, <4 x i1> %v287  store <4 x i1> %v3, ptr %a388  ret void89}90 91define void @f3(ptr %a0, ptr %a1, ptr %a2, ptr %a3) {92; CHECK-LABEL: f3:93; CHECK:         .cfi_startproc94; CHECK-NEXT:  // %bb.0: // %b095; CHECK-NEXT:    {96; CHECK-NEXT:     r0 = memub(r0+#0)97; CHECK-NEXT:    }98; CHECK-NEXT:    {99; CHECK-NEXT:     p0 = r0100; CHECK-NEXT:    }101; CHECK-NEXT:    {102; CHECK-NEXT:     r0 = mux(p0,r1,r2)103; CHECK-NEXT:    }104; CHECK-NEXT:    {105; CHECK-NEXT:     jumpr r31106; CHECK-NEXT:     r0 = memub(r0+#0)107; CHECK-NEXT:     memb(r3+#0) = r0.new108; CHECK-NEXT:    }109b0:110  %v0 = load i1, ptr %a0111  %v1 = load <8 x i1>, ptr %a1112  %v2 = load <8 x i1>, ptr %a2113  %v3 = select i1 %v0, <8 x i1> %v1, <8 x i1> %v2114  store <8 x i1> %v3, ptr %a3115  ret void116}117 118define void @f4(ptr %a0, ptr %a1, ptr %a2, ptr %a3) {119; CHECK-LABEL: f4:120; CHECK:         .cfi_startproc121; CHECK-NEXT:  // %bb.0: // %b0122; CHECK-NEXT:    {123; CHECK-NEXT:     r1 = memub(r1+#0)124; CHECK-NEXT:     r0 = memub(r0+#0)125; CHECK-NEXT:    }126; CHECK-NEXT:    {127; CHECK-NEXT:     p0 = r0128; CHECK-NEXT:     p1 = r1129; CHECK-NEXT:     r2 = memub(r2+#0)130; CHECK-NEXT:    }131; CHECK-NEXT:    {132; CHECK-NEXT:     p2 = r2133; CHECK-NEXT:     p1 = and(p1,p0)134; CHECK-NEXT:    }135; CHECK-NEXT:    {136; CHECK-NEXT:     p0 = or(p1,and(p2,!p0))137; CHECK-NEXT:    }138; CHECK-NEXT:    {139; CHECK-NEXT:     r2 = p0140; CHECK-NEXT:     jumpr r31141; CHECK-NEXT:     memb(r3+#0) = r2.new142; CHECK-NEXT:    }143b0:144  %v0 = load <2 x i1>, ptr %a0145  %v1 = load <2 x i1>, ptr %a1146  %v2 = load <2 x i1>, ptr %a2147  %v3 = select <2 x i1> %v0, <2 x i1> %v1, <2 x i1> %v2148  store <2 x i1> %v3, ptr %a3149  ret void150}151 152define void @f5(ptr %a0, ptr %a1, ptr %a2, ptr %a3) {153; CHECK-LABEL: f5:154; CHECK:         .cfi_startproc155; CHECK-NEXT:  // %bb.0: // %b0156; CHECK-NEXT:    {157; CHECK-NEXT:     r1 = memub(r1+#0)158; CHECK-NEXT:     r0 = memub(r0+#0)159; CHECK-NEXT:    }160; CHECK-NEXT:    {161; CHECK-NEXT:     p0 = r0162; CHECK-NEXT:     p1 = r1163; CHECK-NEXT:     r2 = memub(r2+#0)164; CHECK-NEXT:    }165; CHECK-NEXT:    {166; CHECK-NEXT:     p2 = r2167; CHECK-NEXT:     p1 = and(p1,p0)168; CHECK-NEXT:    }169; CHECK-NEXT:    {170; CHECK-NEXT:     p0 = or(p1,and(p2,!p0))171; CHECK-NEXT:    }172; CHECK-NEXT:    {173; CHECK-NEXT:     r2 = p0174; CHECK-NEXT:     jumpr r31175; CHECK-NEXT:     memb(r3+#0) = r2.new176; CHECK-NEXT:    }177b0:178  %v0 = load <4 x i1>, ptr %a0179  %v1 = load <4 x i1>, ptr %a1180  %v2 = load <4 x i1>, ptr %a2181  %v3 = select <4 x i1> %v0, <4 x i1> %v1, <4 x i1> %v2182  store <4 x i1> %v3, ptr %a3183  ret void184}185 186define void @f6(ptr %a0, ptr %a1, ptr %a2, ptr %a3) {187; CHECK-LABEL: f6:188; CHECK:         .cfi_startproc189; CHECK-NEXT:  // %bb.0: // %b0190; CHECK-NEXT:    {191; CHECK-NEXT:     r1 = memub(r1+#0)192; CHECK-NEXT:     r0 = memub(r0+#0)193; CHECK-NEXT:    }194; CHECK-NEXT:    {195; CHECK-NEXT:     p0 = r0196; CHECK-NEXT:     p1 = r1197; CHECK-NEXT:     r2 = memub(r2+#0)198; CHECK-NEXT:    }199; CHECK-NEXT:    {200; CHECK-NEXT:     p2 = r2201; CHECK-NEXT:     p1 = and(p1,p0)202; CHECK-NEXT:    }203; CHECK-NEXT:    {204; CHECK-NEXT:     p0 = or(p1,and(p2,!p0))205; CHECK-NEXT:    }206; CHECK-NEXT:    {207; CHECK-NEXT:     r2 = p0208; CHECK-NEXT:     jumpr r31209; CHECK-NEXT:     memb(r3+#0) = r2.new210; CHECK-NEXT:    }211b0:212  %v0 = load <8 x i1>, ptr %a0213  %v1 = load <8 x i1>, ptr %a1214  %v2 = load <8 x i1>, ptr %a2215  %v3 = select <8 x i1> %v0, <8 x i1> %v1, <8 x i1> %v2216  store <8 x i1> %v3, ptr %a3217  ret void218}219