brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.1 KiB · 5bb96f8 Raw
393 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3define signext i16 @func1() {4; CHECK-LABEL: func1:5; CHECK:       .LBB{{[0-9]+}}_2:6; CHECK-NEXT:    ld1b.sx %s0, 15(, %s11)7; CHECK-NEXT:    adds.l %s11, 16, %s118; CHECK-NEXT:    b.l.t (, %s10)9  %a = alloca i8, align 110  %a.val = load i8, ptr %a, align 111  %a.conv = sext i8 %a.val to i1612  ret i16 %a.conv13}14 15define i32 @func2() {16; CHECK-LABEL: func2:17; CHECK:       .LBB{{[0-9]+}}_2:18; CHECK-NEXT:    ld1b.sx %s0, 15(, %s11)19; CHECK-NEXT:    adds.l %s11, 16, %s1120; CHECK-NEXT:    b.l.t (, %s10)21  %a = alloca i8, align 122  %a.val = load i8, ptr %a, align 123  %a.conv = sext i8 %a.val to i3224  ret i32 %a.conv25}26 27define i64 @func3() {28; CHECK-LABEL: func3:29; CHECK:       .LBB{{[0-9]+}}_2:30; CHECK-NEXT:    ld1b.sx %s0, 15(, %s11)31; CHECK-NEXT:    adds.l %s11, 16, %s1132; CHECK-NEXT:    b.l.t (, %s10)33  %a = alloca i8, align 134  %a.val = load i8, ptr %a, align 135  %a.conv = sext i8 %a.val to i6436  ret i64 %a.conv37}38 39define zeroext i16 @func5() {40; CHECK-LABEL: func5:41; CHECK:       .LBB{{[0-9]+}}_2:42; CHECK-NEXT:    ld1b.sx %s0, 15(, %s11)43; CHECK-NEXT:    and %s0, %s0, (48)044; CHECK-NEXT:    adds.l %s11, 16, %s1145; CHECK-NEXT:    b.l.t (, %s10)46  %a = alloca i8, align 147  %a.val = load i8, ptr %a, align 148  %a.conv = sext i8 %a.val to i1649  ret i16 %a.conv50}51 52define i32 @func6() {53; CHECK-LABEL: func6:54; CHECK:       .LBB{{[0-9]+}}_2:55; CHECK-NEXT:    ld1b.sx %s0, 15(, %s11)56; CHECK-NEXT:    adds.l %s11, 16, %s1157; CHECK-NEXT:    b.l.t (, %s10)58  %a = alloca i8, align 159  %a.val = load i8, ptr %a, align 160  %a.conv = sext i8 %a.val to i3261  ret i32 %a.conv62}63 64define i64 @func7() {65; CHECK-LABEL: func7:66; CHECK:       .LBB{{[0-9]+}}_2:67; CHECK-NEXT:    ld1b.sx %s0, 15(, %s11)68; CHECK-NEXT:    adds.l %s11, 16, %s1169; CHECK-NEXT:    b.l.t (, %s10)70  %a = alloca i8, align 171  %a.val = load i8, ptr %a, align 172  %a.conv = sext i8 %a.val to i6473  ret i64 %a.conv74}75 76define signext i16 @func9() {77; CHECK-LABEL: func9:78; CHECK:       .LBB{{[0-9]+}}_2:79; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)80; CHECK-NEXT:    adds.l %s11, 16, %s1181; CHECK-NEXT:    b.l.t (, %s10)82  %a = alloca i8, align 183  %a.val = load i8, ptr %a, align 184  %a.conv = zext i8 %a.val to i1685  ret i16 %a.conv86}87 88define i32 @func10() {89; CHECK-LABEL: func10:90; CHECK:       .LBB{{[0-9]+}}_2:91; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)92; CHECK-NEXT:    adds.l %s11, 16, %s1193; CHECK-NEXT:    b.l.t (, %s10)94  %a = alloca i8, align 195  %a.val = load i8, ptr %a, align 196  %a.conv = zext i8 %a.val to i3297  ret i32 %a.conv98}99 100define i64 @func11() {101; CHECK-LABEL: func11:102; CHECK:       .LBB{{[0-9]+}}_2:103; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)104; CHECK-NEXT:    adds.l %s11, 16, %s11105; CHECK-NEXT:    b.l.t (, %s10)106  %a = alloca i8, align 1107  %a.val = load i8, ptr %a, align 1108  %a.conv = zext i8 %a.val to i64109  ret i64 %a.conv110}111 112define zeroext i16 @func13() {113; CHECK-LABEL: func13:114; CHECK:       .LBB{{[0-9]+}}_2:115; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)116; CHECK-NEXT:    adds.l %s11, 16, %s11117; CHECK-NEXT:    b.l.t (, %s10)118  %a = alloca i8, align 1119  %a.val = load i8, ptr %a, align 1120  %a.conv = zext i8 %a.val to i16121  ret i16 %a.conv122}123 124define zeroext i16 @func14() {125; CHECK-LABEL: func14:126; CHECK:       .LBB{{[0-9]+}}_2:127; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)128; CHECK-NEXT:    adds.l %s11, 16, %s11129; CHECK-NEXT:    b.l.t (, %s10)130  %a = alloca i8, align 1131  %a.val = load i8, ptr %a, align 1132  %a.conv = zext i8 %a.val to i16133  ret i16 %a.conv134}135 136define i64 @func15() {137; CHECK-LABEL: func15:138; CHECK:       .LBB{{[0-9]+}}_2:139; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)140; CHECK-NEXT:    adds.l %s11, 16, %s11141; CHECK-NEXT:    b.l.t (, %s10)142  %a = alloca i8, align 1143  %a.val = load i8, ptr %a, align 1144  %a.conv = zext i8 %a.val to i64145  ret i64 %a.conv146}147 148define i32 @func17() {149; CHECK-LABEL: func17:150; CHECK:       .LBB{{[0-9]+}}_2:151; CHECK-NEXT:    ld2b.sx %s0, 14(, %s11)152; CHECK-NEXT:    adds.l %s11, 16, %s11153; CHECK-NEXT:    b.l.t (, %s10)154  %a = alloca i16, align 2155  %a.val = load i16, ptr %a, align 2156  %a.conv = sext i16 %a.val to i32157  ret i32 %a.conv158}159 160define i64 @func18() {161; CHECK-LABEL: func18:162; CHECK:       .LBB{{[0-9]+}}_2:163; CHECK-NEXT:    ld2b.sx %s0, 14(, %s11)164; CHECK-NEXT:    adds.l %s11, 16, %s11165; CHECK-NEXT:    b.l.t (, %s10)166  %a = alloca i16, align 2167  %a.val = load i16, ptr %a, align 2168  %a.conv = sext i16 %a.val to i64169  ret i64 %a.conv170}171 172define zeroext i16 @func20() {173; CHECK-LABEL: func20:174; CHECK:       .LBB{{[0-9]+}}_2:175; CHECK-NEXT:    ld2b.zx %s0, 14(, %s11)176; CHECK-NEXT:    adds.l %s11, 16, %s11177; CHECK-NEXT:    b.l.t (, %s10)178  %a = alloca i16, align 2179  %a.conv = load i16, ptr %a, align 2180  ret i16 %a.conv181}182 183define i64 @func21() {184; CHECK-LABEL: func21:185; CHECK:       .LBB{{[0-9]+}}_2:186; CHECK-NEXT:    ld2b.sx %s0, 14(, %s11)187; CHECK-NEXT:    adds.l %s11, 16, %s11188; CHECK-NEXT:    b.l.t (, %s10)189  %a = alloca i16, align 2190  %a.val = load i16, ptr %a, align 2191  %a.conv = sext i16 %a.val to i64192  ret i64 %a.conv193}194 195define i32 @func23() {196; CHECK-LABEL: func23:197; CHECK:       .LBB{{[0-9]+}}_2:198; CHECK-NEXT:    ld2b.zx %s0, 14(, %s11)199; CHECK-NEXT:    adds.l %s11, 16, %s11200; CHECK-NEXT:    b.l.t (, %s10)201  %a = alloca i16, align 2202  %a.val = load i16, ptr %a, align 2203  %a.conv = zext i16 %a.val to i32204  ret i32 %a.conv205}206 207define i64 @func24() {208; CHECK-LABEL: func24:209; CHECK:       .LBB{{[0-9]+}}_2:210; CHECK-NEXT:    ld2b.zx %s0, 14(, %s11)211; CHECK-NEXT:    adds.l %s11, 16, %s11212; CHECK-NEXT:    b.l.t (, %s10)213  %a = alloca i16, align 2214  %a.val = load i16, ptr %a, align 2215  %a.conv = zext i16 %a.val to i64216  ret i64 %a.conv217}218 219define zeroext i16 @func26() {220; CHECK-LABEL: func26:221; CHECK:       .LBB{{[0-9]+}}_2:222; CHECK-NEXT:    ld2b.zx %s0, 14(, %s11)223; CHECK-NEXT:    adds.l %s11, 16, %s11224; CHECK-NEXT:    b.l.t (, %s10)225  %a = alloca i16, align 2226  %a.conv = load i16, ptr %a, align 2227  ret i16 %a.conv228}229 230define i64 @func27() {231; CHECK-LABEL: func27:232; CHECK:       .LBB{{[0-9]+}}_2:233; CHECK-NEXT:    ld2b.zx %s0, 14(, %s11)234; CHECK-NEXT:    adds.l %s11, 16, %s11235; CHECK-NEXT:    b.l.t (, %s10)236  %a = alloca i16, align 2237  %a.val = load i16, ptr %a, align 2238  %a.conv = zext i16 %a.val to i64239  ret i64 %a.conv240}241 242define i64 @func29() {243; CHECK-LABEL: func29:244; CHECK:       .LBB{{[0-9]+}}_2:245; CHECK-NEXT:    ldl.sx %s0, 12(, %s11)246; CHECK-NEXT:    adds.l %s11, 16, %s11247; CHECK-NEXT:    b.l.t (, %s10)248  %a = alloca i32, align 4249  %a.val = load i32, ptr %a, align 4250  %a.conv = sext i32 %a.val to i64251  ret i64 %a.conv252}253 254define i64 @func31() {255; CHECK-LABEL: func31:256; CHECK:       .LBB{{[0-9]+}}_2:257; CHECK-NEXT:    ldl.sx %s0, 12(, %s11)258; CHECK-NEXT:    adds.l %s11, 16, %s11259; CHECK-NEXT:    b.l.t (, %s10)260  %a = alloca i32, align 4261  %a.val = load i32, ptr %a, align 4262  %a.conv = sext i32 %a.val to i64263  ret i64 %a.conv264}265 266define i64 @func33() {267; CHECK-LABEL: func33:268; CHECK:       .LBB{{[0-9]+}}_2:269; CHECK-NEXT:    ldl.zx %s0, 12(, %s11)270; CHECK-NEXT:    adds.l %s11, 16, %s11271; CHECK-NEXT:    b.l.t (, %s10)272  %a = alloca i32, align 4273  %a.val = load i32, ptr %a, align 4274  %a.conv = zext i32 %a.val to i64275  ret i64 %a.conv276}277 278define i64 @func35() {279; CHECK-LABEL: func35:280; CHECK:       .LBB{{[0-9]+}}_2:281; CHECK-NEXT:    ldl.zx %s0, 12(, %s11)282; CHECK-NEXT:    adds.l %s11, 16, %s11283; CHECK-NEXT:    b.l.t (, %s10)284  %a = alloca i32, align 4285  %a.val = load i32, ptr %a, align 4286  %a.conv = zext i32 %a.val to i64287  ret i64 %a.conv288}289 290define signext i8 @func37() {291; CHECK-LABEL: func37:292; CHECK:       .LBB{{[0-9]+}}_2:293; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)294; CHECK-NEXT:    sll %s0, %s0, 63295; CHECK-NEXT:    sra.l %s0, %s0, 63296; CHECK-NEXT:    adds.l %s11, 16, %s11297; CHECK-NEXT:    b.l.t (, %s10)298  %a = alloca i1, align 1299  %a.val = load i1, ptr %a, align 1300  %a.conv = sext i1 %a.val to i8301  ret i8 %a.conv302}303 304define signext i16 @func38() {305; CHECK-LABEL: func38:306; CHECK:       .LBB{{[0-9]+}}_2:307; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)308; CHECK-NEXT:    sll %s0, %s0, 63309; CHECK-NEXT:    sra.l %s0, %s0, 63310; CHECK-NEXT:    adds.l %s11, 16, %s11311; CHECK-NEXT:    b.l.t (, %s10)312  %a = alloca i1, align 1313  %a.val = load i1, ptr %a, align 1314  %a.conv = sext i1 %a.val to i16315  ret i16 %a.conv316}317 318define signext i32 @func39() {319; CHECK-LABEL: func39:320; CHECK:       .LBB{{[0-9]+}}_2:321; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)322; CHECK-NEXT:    sll %s0, %s0, 63323; CHECK-NEXT:    sra.l %s0, %s0, 63324; CHECK-NEXT:    adds.l %s11, 16, %s11325; CHECK-NEXT:    b.l.t (, %s10)326  %a = alloca i1, align 1327  %a.val = load i1, ptr %a, align 1328  %a.conv = sext i1 %a.val to i32329  ret i32 %a.conv330}331 332define signext i64 @func40() {333; CHECK-LABEL: func40:334; CHECK:       .LBB{{[0-9]+}}_2:335; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)336; CHECK-NEXT:    sll %s0, %s0, 63337; CHECK-NEXT:    sra.l %s0, %s0, 63338; CHECK-NEXT:    adds.l %s11, 16, %s11339; CHECK-NEXT:    b.l.t (, %s10)340  %a = alloca i1, align 1341  %a.val = load i1, ptr %a, align 1342  %a.conv = sext i1 %a.val to i64343  ret i64 %a.conv344}345 346define signext i8 @func42() {347; CHECK-LABEL: func42:348; CHECK:       .LBB{{[0-9]+}}_2:349; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)350; CHECK-NEXT:    adds.l %s11, 16, %s11351; CHECK-NEXT:    b.l.t (, %s10)352  %a = alloca i1, align 1353  %a.val = load i1, ptr %a, align 1354  %a.conv = zext i1 %a.val to i8355  ret i8 %a.conv356}357 358define signext i16 @func43() {359; CHECK-LABEL: func43:360; CHECK:       .LBB{{[0-9]+}}_2:361; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)362; CHECK-NEXT:    adds.l %s11, 16, %s11363; CHECK-NEXT:    b.l.t (, %s10)364  %a = alloca i1, align 1365  %a.val = load i1, ptr %a, align 1366  %a.conv = zext i1 %a.val to i16367  ret i16 %a.conv368}369 370define signext i32 @func44() {371; CHECK-LABEL: func44:372; CHECK:       .LBB{{[0-9]+}}_2:373; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)374; CHECK-NEXT:    adds.l %s11, 16, %s11375; CHECK-NEXT:    b.l.t (, %s10)376  %a = alloca i1, align 1377  %a.val = load i1, ptr %a, align 1378  %a.conv = zext i1 %a.val to i32379  ret i32 %a.conv380}381 382define signext i64 @func45() {383; CHECK-LABEL: func45:384; CHECK:       .LBB{{[0-9]+}}_2:385; CHECK-NEXT:    ld1b.zx %s0, 15(, %s11)386; CHECK-NEXT:    adds.l %s11, 16, %s11387; CHECK-NEXT:    b.l.t (, %s10)388  %a = alloca i1, align 1389  %a.val = load i1, ptr %a, align 1390  %a.conv = zext i1 %a.val to i64391  ret i64 %a.conv392}393