brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · a8a09db Raw
260 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=thumbv6-eabi %s -o - | FileCheck %s3 4define i32 @test1(i32 %x) {5; CHECK-LABEL: test1:6; CHECK:       @ %bb.0: @ %entry7; CHECK-NEXT:    lsls r0, r0, #208; CHECK-NEXT:    lsrs r0, r0, #229; CHECK-NEXT:    bx lr10entry:11  %0 = lshr i32 %x, 212  %shr = and i32 %0, 102313  ret i32 %shr14}15 16define i32 @test2(i32 %x) {17; CHECK-LABEL: test2:18; CHECK:       @ %bb.0: @ %entry19; CHECK-NEXT:    lsrs r1, r0, #220; CHECK-NEXT:    ldr r0, .LCPI1_021; CHECK-NEXT:    ands r0, r122; CHECK-NEXT:    bx lr23; CHECK-NEXT:    .p2align 224; CHECK-NEXT:  @ %bb.1:25; CHECK-NEXT:  .LCPI1_0:26; CHECK-NEXT:    .long 1022 @ 0x3fe27entry:28  %0 = lshr i32 %x, 229  %shr = and i32 %0, 102230  ret i32 %shr31}32 33define i32 @test3(i32 %x) {34; CHECK-LABEL: test3:35; CHECK:       @ %bb.0: @ %entry36; CHECK-NEXT:    lsrs r0, r0, #237; CHECK-NEXT:    uxtb r0, r038; CHECK-NEXT:    bx lr39entry:40  %0 = lshr i32 %x, 241  %shr = and i32 %0, 25542  ret i32 %shr43}44 45define i32 @test4(i32 %x) {46; CHECK-LABEL: test4:47; CHECK:       @ %bb.0: @ %entry48; CHECK-NEXT:    lsrs r0, r0, #349; CHECK-NEXT:    lsls r0, r0, #750; CHECK-NEXT:    bx lr51entry:52  %0 = shl i32 %x, 453  %shr = and i32 %0, -12854  ret i32 %shr55}56 57define i32 @test5(i32 %x) {58; CHECK-LABEL: test5:59; CHECK:       @ %bb.0: @ %entry60; CHECK-NEXT:    lsls r0, r0, #3161; CHECK-NEXT:    lsrs r0, r0, #262; CHECK-NEXT:    bx lr63entry:64  %0 = shl i32 %x, 2965  %shr = and i32 %0, 53687091266  ret i32 %shr67}68 69define i32 @test6(i32 %x) {70; CHECK-LABEL: test6:71; CHECK:       @ %bb.0: @ %entry72; CHECK-NEXT:    movs r1, #573; CHECK-NEXT:    ands r1, r074; CHECK-NEXT:    lsls r0, r1, #2975; CHECK-NEXT:    bx lr76entry:77  %0 = shl i32 %x, 2978  %shr = and i32 %0, 268435456079  ret i32 %shr80}81 82define i32 @test7(i32 %x) {83; CHECK-LABEL: test7:84; CHECK:       @ %bb.0: @ %entry85; CHECK-NEXT:    lsrs r0, r0, #3186; CHECK-NEXT:    lsls r0, r0, #287; CHECK-NEXT:    bx lr88entry:89  %0 = lshr i32 %x, 2990  %shr = and i32 %0, 491  ret i32 %shr92}93 94define i32 @test8(i32 %x) {95; CHECK-LABEL: test8:96; CHECK:       @ %bb.0: @ %entry97; CHECK-NEXT:    lsrs r1, r0, #2998; CHECK-NEXT:    movs r0, #599; CHECK-NEXT:    ands r0, r1100; CHECK-NEXT:    bx lr101entry:102  %0 = lshr i32 %x, 29103  %shr = and i32 %0, 5104  ret i32 %shr105}106 107define i32 @test9(i32 %x) {108; CHECK-LABEL: test9:109; CHECK:       @ %bb.0: @ %entry110; CHECK-NEXT:    lsrs r0, r0, #3111; CHECK-NEXT:    lsls r0, r0, #1112; CHECK-NEXT:    bx lr113entry:114  %and = lshr i32 %x, 2115  %shr = and i32 %and, 1073741822116  ret i32 %shr117}118 119define i32 @test10(i32 %x) {120; CHECK-LABEL: test10:121; CHECK:       @ %bb.0: @ %entry122; CHECK-NEXT:    lsls r0, r0, #2123; CHECK-NEXT:    uxtb r0, r0124; CHECK-NEXT:    bx lr125entry:126  %0 = shl i32 %x, 2127  %shr = and i32 %0, 255128  ret i32 %shr129}130 131define i32 @test11(i32 %x) {132; CHECK-LABEL: test11:133; CHECK:       @ %bb.0: @ %entry134; CHECK-NEXT:    lsrs r0, r0, #24135; CHECK-NEXT:    lsls r0, r0, #2136; CHECK-NEXT:    bx lr137entry:138  %shl = lshr i32 %x, 22139  %and = and i32 %shl, 1020140  ret i32 %and141}142 143define i32 @test12(i32 %x) {144; CHECK-LABEL: test12:145; CHECK:       @ %bb.0: @ %entry146; CHECK-NEXT:    lsrs r0, r0, #3147; CHECK-NEXT:    lsls r0, r0, #4148; CHECK-NEXT:    bx lr149entry:150  %0 = shl i32 %x, 1151  %shr = and i32 %0, -16152  ret i32 %shr153}154 155define i32 @test13(i32 %x) {156; CHECK-LABEL: test13:157; CHECK:       @ %bb.0: @ %entry158; CHECK-NEXT:    lsrs r0, r0, #3159; CHECK-NEXT:    lsls r0, r0, #4160; CHECK-NEXT:    bx lr161entry:162  %shr = lshr i32 %x, 3163  %shl = shl i32 %shr, 4164  ret i32 %shl165}166 167define i32 @test14(i32 %x) {168; CHECK-LABEL: test14:169; CHECK:       @ %bb.0: @ %entry170; CHECK-NEXT:    lsrs r0, r0, #6171; CHECK-NEXT:    lsls r0, r0, #10172; CHECK-NEXT:    bx lr173entry:174  %shl = shl i32 %x, 4175  %and = and i32 %shl, -1024176  ret i32 %and177}178 179define i32 @test15(i32 %x) {180; CHECK-LABEL: test15:181; CHECK:       @ %bb.0: @ %entry182; CHECK-NEXT:    lsrs r0, r0, #4183; CHECK-NEXT:    lsls r0, r0, #3184; CHECK-NEXT:    bx lr185entry:186  %shr = lshr i32 %x, 4187  %shl = shl i32 %shr, 3188  ret i32 %shl189}190 191define i32 @test16(i32 %x) {192; CHECK-LABEL: test16:193; CHECK:       @ %bb.0: @ %entry194; CHECK-NEXT:    lsls r0, r0, #28195; CHECK-NEXT:    lsrs r0, r0, #26196; CHECK-NEXT:    bx lr197entry:198  %0 = and i32 %x, 15199  %shl = shl i32 %0, 2200  ret i32 %shl201}202 203define ptr @test17(ptr %p, i32 %x) {204; CHECK-LABEL: test17:205; CHECK:       @ %bb.0: @ %entry206; CHECK-NEXT:    lsls r1, r1, #28207; CHECK-NEXT:    lsrs r1, r1, #26208; CHECK-NEXT:    adds r0, r0, r1209; CHECK-NEXT:    bx lr210entry:211  %0 = and i32 %x, 15212  %shl = getelementptr i32, ptr %p, i32 %0213  ret ptr %shl214}215 216define ptr @test18(ptr %p, i32 %x) {217; CHECK-LABEL: test18:218; CHECK:       @ %bb.0: @ %entry219; CHECK-NEXT:    adds r1, r1, #1220; CHECK-NEXT:    lsls r1, r1, #28221; CHECK-NEXT:    lsrs r1, r1, #26222; CHECK-NEXT:    adds r0, r0, r1223; CHECK-NEXT:    bx lr224entry:225  %xx = add i32 %x, 1226  %0 = and i32 %xx, 15227  %shl = getelementptr i32, ptr %p, i32 %0228  ret ptr %shl229}230 231define ptr @test19(ptr %p, i32 %x) {232; CHECK-LABEL: test19:233; CHECK:       @ %bb.0: @ %entry234; CHECK-NEXT:    subs r1, r1, #1235; CHECK-NEXT:    lsls r1, r1, #28236; CHECK-NEXT:    lsrs r1, r1, #26237; CHECK-NEXT:    adds r0, r0, r1238; CHECK-NEXT:    bx lr239entry:240  %xx = sub i32 %x, 1241  %0 = and i32 %xx, 15242  %shl = getelementptr i32, ptr %p, i32 %0243  ret ptr %shl244}245 246define ptr @test20(ptr %p, i32 %x) {247; CHECK-LABEL: test20:248; CHECK:       @ %bb.0: @ %entry249; CHECK-NEXT:    subs r1, r1, #1250; CHECK-NEXT:    lsls r1, r1, #28251; CHECK-NEXT:    lsrs r1, r1, #26252; CHECK-NEXT:    adds r0, r0, r1253; CHECK-NEXT:    bx lr254entry:255  %xx = add i32 %x, 15256  %0 = and i32 %xx, 15257  %shl = getelementptr i32, ptr %p, i32 %0258  ret ptr %shl259}260