brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 775e452 Raw
129 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=arm-eabi -mattr=+v6 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-V63; RUN: llc -mtriple=arm-eabi -mattr=+v7 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-V74 5define i32 @test0(i8 %A) {6; CHECK-LABEL: test0:7; CHECK:       @ %bb.0:8; CHECK-NEXT:    sxtb r0, r09; CHECK-NEXT:    bx lr10  %B = sext i8 %A to i3211  ret i32 %B12}13 14define signext i8 @test1(i32 %A) {15; CHECK-V6-LABEL: test1:16; CHECK-V6:       @ %bb.0:17; CHECK-V6-NEXT:    lsr r0, r0, #818; CHECK-V6-NEXT:    sxtb r0, r019; CHECK-V6-NEXT:    bx lr20;21; CHECK-V7-LABEL: test1:22; CHECK-V7:       @ %bb.0:23; CHECK-V7-NEXT:    sbfx r0, r0, #8, #824; CHECK-V7-NEXT:    bx lr25  %B = lshr i32 %A, 826  %C = shl i32 %A, 2427  %D = or i32 %B, %C28  %E = trunc i32 %D to i829  ret i8 %E30}31 32define signext i32 @test2(i32 %A, i32 %X) {33; CHECK-LABEL: test2:34; CHECK:       @ %bb.0:35; CHECK-NEXT:    sxtab r0, r1, r0, ror #836; CHECK-NEXT:    bx lr37  %B = lshr i32 %A, 838  %C = shl i32 %A, 2439  %D = or i32 %B, %C40  %E = trunc i32 %D to i841  %F = sext i8 %E to i3242  %G = add i32 %F, %X43  ret i32 %G44}45 46define signext i32 @test3(i32 %A, i32 %X) {47; CHECK-LABEL: test3:48; CHECK:       @ %bb.0:49; CHECK-NEXT:    sxtab r0, r1, r0, ror #1650; CHECK-NEXT:    bx lr51  %B = lshr i32 %A, 1652  %C = shl i32 %A, 1653  %D = or i32 %B, %C54  %E = trunc i32 %D to i855  %F = sext i8 %E to i3256  %G = add i32 %F, %X57  ret i32 %G58}59 60define signext i32 @test4(i32 %A, i32 %X) {61; CHECK-LABEL: test4:62; CHECK:       @ %bb.0:63; CHECK-NEXT:    sxtah r0, r1, r0, ror #864; CHECK-NEXT:    bx lr65  %B = lshr i32 %A, 866  %C = shl i32 %A, 2467  %D = or i32 %B, %C68  %E = trunc i32 %D to i1669  %F = sext i16 %E to i3270  %G = add i32 %F, %X71  ret i32 %G72}73 74define signext i32 @test5(i32 %A, i32 %X) {75; CHECK-LABEL: test5:76; CHECK:       @ %bb.0:77; CHECK-NEXT:    sxtah r0, r1, r0, ror #2478; CHECK-NEXT:    bx lr79  %B = lshr i32 %A, 2480  %C = shl i32 %A, 881  %D = or i32 %B, %C82  %E = trunc i32 %D to i1683  %F = sext i16 %E to i3284  %G = add i32 %F, %X85  ret i32 %G86}87 88define i32 @test6(i8 %A, i32 %X) {89; CHECK-LABEL: test6:90; CHECK:       @ %bb.0:91; CHECK-NEXT:    sxtab r0, r1, r092; CHECK-NEXT:    bx lr93  %sext = sext i8 %A to i3294  %add = add i32 %X, %sext95  ret i32 %add96}97 98define i32 @test7(i32 %A, i32 %X) {99; CHECK-LABEL: test7:100; CHECK:       @ %bb.0:101; CHECK-NEXT:    sxtab r0, r1, r0102; CHECK-NEXT:    bx lr103  %shl = shl i32 %A, 24104  %shr = ashr i32 %shl, 24105  %add = add i32 %X, %shr106  ret i32 %add107}108 109define i32 @test8(i16 %A, i32 %X) {110; CHECK-LABEL: test8:111; CHECK:       @ %bb.0:112; CHECK-NEXT:    sxtah r0, r1, r0113; CHECK-NEXT:    bx lr114  %sext = sext i16 %A to i32115  %add = add i32 %X, %sext116  ret i32 %add117}118 119define i32 @test9(i32 %A, i32 %X) {120; CHECK-LABEL: test9:121; CHECK:       @ %bb.0:122; CHECK-NEXT:    sxtah r0, r1, r0123; CHECK-NEXT:    bx lr124  %shl = shl i32 %A, 16125  %shr = ashr i32 %shl, 16126  %add = add i32 %X, %shr127  ret i32 %add128}129