283 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) {5; CHECK-LABEL: f0:6; CHECK: .cfi_startproc7; CHECK-NEXT: // %bb.0: // %b08; CHECK-NEXT: {9; CHECK-NEXT: r1 = memub(r1+#0)10; CHECK-NEXT: r0 = memub(r0+#0)11; CHECK-NEXT: }12; CHECK-NEXT: {13; CHECK-NEXT: p0 = r014; CHECK-NEXT: p1 = r115; CHECK-NEXT: }16; CHECK-NEXT: {17; CHECK-NEXT: p0 = xor(p0,p1)18; CHECK-NEXT: }19; CHECK-NEXT: {20; CHECK-NEXT: r0 = mux(p0,#0,#1)21; CHECK-NEXT: jumpr r3122; CHECK-NEXT: memb(r2+#0) = r0.new23; CHECK-NEXT: }24b0:25 %v0 = load i1, ptr %a026 %v1 = load i1, ptr %a127 %v2 = icmp eq i1 %v0, %v128 store i1 %v2, ptr %a229 ret void30}31 32define void @f1(ptr %a0, ptr %a1, ptr %a2) {33; CHECK-LABEL: f1:34; CHECK: .cfi_startproc35; CHECK-NEXT: // %bb.0: // %b036; CHECK-NEXT: {37; CHECK-NEXT: r1 = memub(r1+#0)38; CHECK-NEXT: r0 = memub(r0+#0)39; CHECK-NEXT: }40; CHECK-NEXT: {41; CHECK-NEXT: p0 = r042; CHECK-NEXT: p1 = r143; CHECK-NEXT: }44; CHECK-NEXT: {45; CHECK-NEXT: p0 = xor(p0,p1)46; CHECK-NEXT: }47; CHECK-NEXT: {48; CHECK-NEXT: r0 = mux(p0,#1,#0)49; CHECK-NEXT: jumpr r3150; CHECK-NEXT: memb(r2+#0) = r0.new51; CHECK-NEXT: }52b0:53 %v0 = load i1, ptr %a054 %v1 = load i1, ptr %a155 %v2 = icmp ne i1 %v0, %v156 store i1 %v2, ptr %a257 ret void58}59 60define void @f2(ptr %a0, ptr %a1, ptr %a2) {61; CHECK-LABEL: f2:62; CHECK: .cfi_startproc63; CHECK-NEXT: // %bb.0: // %b064; CHECK-NEXT: {65; CHECK-NEXT: r1 = memub(r1+#0)66; CHECK-NEXT: r0 = memub(r0+#0)67; CHECK-NEXT: }68; CHECK-NEXT: {69; CHECK-NEXT: p0 = r070; CHECK-NEXT: p1 = r171; CHECK-NEXT: }72; CHECK-NEXT: {73; CHECK-NEXT: p0 = and(p0,!p1)74; CHECK-NEXT: }75; CHECK-NEXT: {76; CHECK-NEXT: r0 = mux(p0,#1,#0)77; CHECK-NEXT: jumpr r3178; CHECK-NEXT: memb(r2+#0) = r0.new79; CHECK-NEXT: }80b0:81 %v0 = load i1, ptr %a082 %v1 = load i1, ptr %a183 %v2 = icmp slt i1 %v0, %v184 store i1 %v2, ptr %a285 ret void86}87 88define void @f3(ptr %a0, ptr %a1, ptr %a2) {89; CHECK-LABEL: f3:90; CHECK: .cfi_startproc91; CHECK-NEXT: // %bb.0: // %b092; CHECK-NEXT: {93; CHECK-NEXT: r1 = memub(r1+#0)94; CHECK-NEXT: r0 = memub(r0+#0)95; CHECK-NEXT: }96; CHECK-NEXT: {97; CHECK-NEXT: p0 = r098; CHECK-NEXT: p1 = r199; CHECK-NEXT: }100; CHECK-NEXT: {101; CHECK-NEXT: p0 = or(p0,!p1)102; CHECK-NEXT: }103; CHECK-NEXT: {104; CHECK-NEXT: r0 = mux(p0,#1,#0)105; CHECK-NEXT: jumpr r31106; CHECK-NEXT: memb(r2+#0) = r0.new107; CHECK-NEXT: }108b0:109 %v0 = load i1, ptr %a0110 %v1 = load i1, ptr %a1111 %v2 = icmp sle i1 %v0, %v1112 store i1 %v2, ptr %a2113 ret void114}115 116define void @f4(ptr %a0, ptr %a1, ptr %a2) {117; CHECK-LABEL: f4:118; CHECK: .cfi_startproc119; CHECK-NEXT: // %bb.0: // %b0120; CHECK-NEXT: {121; CHECK-NEXT: r1 = memub(r1+#0)122; CHECK-NEXT: r0 = memub(r0+#0)123; CHECK-NEXT: }124; CHECK-NEXT: {125; CHECK-NEXT: p0 = r0126; CHECK-NEXT: p1 = r1127; CHECK-NEXT: }128; CHECK-NEXT: {129; CHECK-NEXT: p0 = and(p1,!p0)130; CHECK-NEXT: }131; CHECK-NEXT: {132; CHECK-NEXT: r0 = mux(p0,#1,#0)133; CHECK-NEXT: jumpr r31134; CHECK-NEXT: memb(r2+#0) = r0.new135; CHECK-NEXT: }136b0:137 %v0 = load i1, ptr %a0138 %v1 = load i1, ptr %a1139 %v2 = icmp sgt i1 %v0, %v1140 store i1 %v2, ptr %a2141 ret void142}143 144define void @f5(ptr %a0, ptr %a1, ptr %a2) {145; CHECK-LABEL: f5:146; CHECK: .cfi_startproc147; CHECK-NEXT: // %bb.0: // %b0148; CHECK-NEXT: {149; CHECK-NEXT: r1 = memub(r1+#0)150; CHECK-NEXT: r0 = memub(r0+#0)151; CHECK-NEXT: }152; CHECK-NEXT: {153; CHECK-NEXT: p0 = r0154; CHECK-NEXT: p1 = r1155; CHECK-NEXT: }156; CHECK-NEXT: {157; CHECK-NEXT: p0 = or(p1,!p0)158; CHECK-NEXT: }159; CHECK-NEXT: {160; CHECK-NEXT: r0 = mux(p0,#1,#0)161; CHECK-NEXT: jumpr r31162; CHECK-NEXT: memb(r2+#0) = r0.new163; CHECK-NEXT: }164b0:165 %v0 = load i1, ptr %a0166 %v1 = load i1, ptr %a1167 %v2 = icmp sge i1 %v0, %v1168 store i1 %v2, ptr %a2169 ret void170}171 172define void @f6(ptr %a0, ptr %a1, ptr %a2) {173; CHECK-LABEL: f6:174; CHECK: .cfi_startproc175; CHECK-NEXT: // %bb.0: // %b0176; CHECK-NEXT: {177; CHECK-NEXT: r1 = memub(r1+#0)178; CHECK-NEXT: r0 = memub(r0+#0)179; CHECK-NEXT: }180; CHECK-NEXT: {181; CHECK-NEXT: p0 = r0182; CHECK-NEXT: p1 = r1183; CHECK-NEXT: }184; CHECK-NEXT: {185; CHECK-NEXT: p0 = and(p1,!p0)186; CHECK-NEXT: }187; CHECK-NEXT: {188; CHECK-NEXT: r0 = mux(p0,#1,#0)189; CHECK-NEXT: jumpr r31190; CHECK-NEXT: memb(r2+#0) = r0.new191; CHECK-NEXT: }192b0:193 %v0 = load i1, ptr %a0194 %v1 = load i1, ptr %a1195 %v2 = icmp ult i1 %v0, %v1196 store i1 %v2, ptr %a2197 ret void198}199 200define void @f7(ptr %a0, ptr %a1, ptr %a2) {201; CHECK-LABEL: f7:202; CHECK: .cfi_startproc203; CHECK-NEXT: // %bb.0: // %b0204; CHECK-NEXT: {205; CHECK-NEXT: r1 = memub(r1+#0)206; CHECK-NEXT: r0 = memub(r0+#0)207; CHECK-NEXT: }208; CHECK-NEXT: {209; CHECK-NEXT: p0 = r0210; CHECK-NEXT: p1 = r1211; CHECK-NEXT: }212; CHECK-NEXT: {213; CHECK-NEXT: p0 = or(p1,!p0)214; CHECK-NEXT: }215; CHECK-NEXT: {216; CHECK-NEXT: r0 = mux(p0,#1,#0)217; CHECK-NEXT: jumpr r31218; CHECK-NEXT: memb(r2+#0) = r0.new219; CHECK-NEXT: }220b0:221 %v0 = load i1, ptr %a0222 %v1 = load i1, ptr %a1223 %v2 = icmp ule i1 %v0, %v1224 store i1 %v2, ptr %a2225 ret void226}227 228define void @f8(ptr %a0, ptr %a1, ptr %a2) {229; CHECK-LABEL: f8:230; CHECK: .cfi_startproc231; CHECK-NEXT: // %bb.0: // %b0232; CHECK-NEXT: {233; CHECK-NEXT: r1 = memub(r1+#0)234; CHECK-NEXT: r0 = memub(r0+#0)235; CHECK-NEXT: }236; CHECK-NEXT: {237; CHECK-NEXT: p0 = r0238; CHECK-NEXT: p1 = r1239; CHECK-NEXT: }240; CHECK-NEXT: {241; CHECK-NEXT: p0 = and(p0,!p1)242; CHECK-NEXT: }243; CHECK-NEXT: {244; CHECK-NEXT: r0 = mux(p0,#1,#0)245; CHECK-NEXT: jumpr r31246; CHECK-NEXT: memb(r2+#0) = r0.new247; CHECK-NEXT: }248b0:249 %v0 = load i1, ptr %a0250 %v1 = load i1, ptr %a1251 %v2 = icmp ugt i1 %v0, %v1252 store i1 %v2, ptr %a2253 ret void254}255 256define void @f9(ptr %a0, ptr %a1, ptr %a2) {257; CHECK-LABEL: f9:258; CHECK: .cfi_startproc259; CHECK-NEXT: // %bb.0: // %b0260; CHECK-NEXT: {261; CHECK-NEXT: r1 = memub(r1+#0)262; CHECK-NEXT: r0 = memub(r0+#0)263; CHECK-NEXT: }264; CHECK-NEXT: {265; CHECK-NEXT: p0 = r0266; CHECK-NEXT: p1 = r1267; CHECK-NEXT: }268; CHECK-NEXT: {269; CHECK-NEXT: p0 = or(p0,!p1)270; CHECK-NEXT: }271; CHECK-NEXT: {272; CHECK-NEXT: r0 = mux(p0,#1,#0)273; CHECK-NEXT: jumpr r31274; CHECK-NEXT: memb(r2+#0) = r0.new275; CHECK-NEXT: }276b0:277 %v0 = load i1, ptr %a0278 %v1 = load i1, ptr %a1279 %v2 = icmp uge i1 %v0, %v1280 store i1 %v2, ptr %a2281 ret void282}283