brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 7d1670d Raw
173 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3define signext i8 @func1(i8 signext %0, i8 signext %1) {4; CHECK-LABEL: func1:5; CHECK:       # %bb.0:6; CHECK-NEXT:    sra.w.sx %s0, %s0, %s17; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)18; CHECK-NEXT:    b.l.t (, %s10)9  %3 = sext i8 %0 to i3210  %4 = sext i8 %1 to i3211  %5 = ashr i32 %3, %412  %6 = trunc i32 %5 to i813  ret i8 %614}15 16define signext i16 @func2(i16 signext %0, i16 signext %1) {17; CHECK-LABEL: func2:18; CHECK:       # %bb.0:19; CHECK-NEXT:    sra.w.sx %s0, %s0, %s120; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)121; CHECK-NEXT:    b.l.t (, %s10)22  %3 = sext i16 %0 to i3223  %4 = sext i16 %1 to i3224  %5 = ashr i32 %3, %425  %6 = trunc i32 %5 to i1626  ret i16 %627}28 29define i32 @func3(i32 %0, i32 %1) {30; CHECK-LABEL: func3:31; CHECK:       # %bb.0:32; CHECK-NEXT:    sra.w.sx %s0, %s0, %s133; CHECK-NEXT:    b.l.t (, %s10)34  %3 = ashr i32 %0, %135  ret i32 %336}37 38define i64 @func4(i64 %0, i64 %1) {39; CHECK-LABEL: func4:40; CHECK:       # %bb.0:41; CHECK-NEXT:    sra.l %s0, %s0, %s142; CHECK-NEXT:    b.l.t (, %s10)43  %3 = ashr i64 %0, %144  ret i64 %345}46 47define zeroext i8 @func7(i8 zeroext %0, i8 zeroext %1) {48; CHECK-LABEL: func7:49; CHECK:       # %bb.0:50; CHECK-NEXT:    and %s0, %s0, (32)051; CHECK-NEXT:    srl %s0, %s0, %s152; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)153; CHECK-NEXT:    b.l.t (, %s10)54  %3 = zext i8 %0 to i3255  %4 = zext i8 %1 to i3256  %5 = lshr i32 %3, %457  %6 = trunc i32 %5 to i858  ret i8 %659}60 61define zeroext i16 @func8(i16 zeroext %0, i16 zeroext %1) {62; CHECK-LABEL: func8:63; CHECK:       # %bb.0:64; CHECK-NEXT:    and %s0, %s0, (32)065; CHECK-NEXT:    srl %s0, %s0, %s166; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)167; CHECK-NEXT:    b.l.t (, %s10)68  %3 = zext i16 %0 to i3269  %4 = zext i16 %1 to i3270  %5 = lshr i32 %3, %471  %6 = trunc i32 %5 to i1672  ret i16 %673}74 75define i32 @func9(i32 %0, i32 %1) {76; CHECK-LABEL: func9:77; CHECK:       # %bb.0:78; CHECK-NEXT:    and %s0, %s0, (32)079; CHECK-NEXT:    srl %s0, %s0, %s180; CHECK-NEXT:    b.l.t (, %s10)81  %3 = lshr i32 %0, %182  ret i32 %383}84 85define i64 @func10(i64 %0, i64 %1) {86; CHECK-LABEL: func10:87; CHECK:       # %bb.0:88; CHECK-NEXT:    srl %s0, %s0, %s189; CHECK-NEXT:    b.l.t (, %s10)90  %3 = lshr i64 %0, %191  ret i64 %392}93 94define signext i8 @func12(i8 signext %0) {95; CHECK-LABEL: func12:96; CHECK:       # %bb.0:97; CHECK-NEXT:    sra.w.sx %s0, %s0, 598; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)199; CHECK-NEXT:    b.l.t (, %s10)100  %2 = ashr i8 %0, 5101  ret i8 %2102}103 104define signext i16 @func13(i16 signext %0) {105; CHECK-LABEL: func13:106; CHECK:       # %bb.0:107; CHECK-NEXT:    sra.w.sx %s0, %s0, 5108; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)1109; CHECK-NEXT:    b.l.t (, %s10)110  %2 = ashr i16 %0, 5111  ret i16 %2112}113 114define i32 @func14(i32 %0) {115; CHECK-LABEL: func14:116; CHECK:       # %bb.0:117; CHECK-NEXT:    sra.w.sx %s0, %s0, 5118; CHECK-NEXT:    b.l.t (, %s10)119  %2 = ashr i32 %0, 5120  ret i32 %2121}122 123define i64 @func15(i64 %0) {124; CHECK-LABEL: func15:125; CHECK:       # %bb.0:126; CHECK-NEXT:    sra.l %s0, %s0, 5127; CHECK-NEXT:    b.l.t (, %s10)128  %2 = ashr i64 %0, 5129  ret i64 %2130}131 132define zeroext i8 @func17(i8 zeroext %0) {133; CHECK-LABEL: func17:134; CHECK:       # %bb.0:135; CHECK-NEXT:    and %s0, %s0, (32)0136; CHECK-NEXT:    srl %s0, %s0, 5137; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1138; CHECK-NEXT:    b.l.t (, %s10)139  %2 = lshr i8 %0, 5140  ret i8 %2141}142 143define zeroext i16 @func18(i16 zeroext %0) {144; CHECK-LABEL: func18:145; CHECK:       # %bb.0:146; CHECK-NEXT:    and %s0, %s0, (32)0147; CHECK-NEXT:    srl %s0, %s0, 5148; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1149; CHECK-NEXT:    b.l.t (, %s10)150  %2 = lshr i16 %0, 5151  ret i16 %2152}153 154define i32 @func19(i32 %0) {155; CHECK-LABEL: func19:156; CHECK:       # %bb.0:157; CHECK-NEXT:    and %s0, %s0, (32)0158; CHECK-NEXT:    srl %s0, %s0, 5159; CHECK-NEXT:    b.l.t (, %s10)160  %2 = lshr i32 %0, 5161  ret i32 %2162}163 164define i64 @func20(i64 %0) {165; CHECK-LABEL: func20:166; CHECK:       # %bb.0:167; CHECK-NEXT:    srl %s0, %s0, 5168; CHECK-NEXT:    b.l.t (, %s10)169  %2 = lshr i64 %0, 5170  ret i64 %2171}172 173