brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · b5f6b3a Raw
59 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=thumbv6-unknown-linux-gnu | FileCheck %s3 4%umul.ty = type { i32, i1 }5 6define i32 @test1(i32 %a, i1 %x) nounwind {7; CHECK-LABEL: test1:8; CHECK:       @ %bb.0:9; CHECK-NEXT:    push {r4, r5, r7, lr}10; CHECK-NEXT:    mov r5, r111; CHECK-NEXT:    movs r2, #3712; CHECK-NEXT:    movs r4, #013; CHECK-NEXT:    mov r1, r414; CHECK-NEXT:    mov r3, r415; CHECK-NEXT:    bl __muldi316; CHECK-NEXT:    lsls r1, r5, #3117; CHECK-NEXT:    beq .LBB0_218; CHECK-NEXT:  @ %bb.1:19; CHECK-NEXT:    mvns r0, r420; CHECK-NEXT:  .LBB0_2:21; CHECK-NEXT:    pop {r4, r5, r7, pc}22  %tmp0 = tail call %umul.ty @llvm.umul.with.overflow.i32(i32 %a, i32 37)23  %tmp1 = extractvalue %umul.ty %tmp0, 024  %tmp2 = select i1 %x, i32 -1, i32 %tmp125  ret i32 %tmp226}27 28declare %umul.ty @llvm.umul.with.overflow.i32(i32, i32) nounwind readnone29 30define i32 @test2(ptr %m_degree) ssp {31; CHECK-LABEL: test2:32; CHECK:       @ %bb.0:33; CHECK-NEXT:    push {r4, lr}34; CHECK-NEXT:    ldr r1, [r0]35; CHECK-NEXT:    lsls r0, r1, #336; CHECK-NEXT:    lsrs r2, r0, #337; CHECK-NEXT:    subs r1, r1, r238; CHECK-NEXT:    subs r2, r1, #139; CHECK-NEXT:    sbcs r1, r240; CHECK-NEXT:    movs r4, #041; CHECK-NEXT:    cmp r1, #042; CHECK-NEXT:    beq .LBB1_243; CHECK-NEXT:  @ %bb.1:44; CHECK-NEXT:    mvns r0, r445; CHECK-NEXT:  .LBB1_2:46; CHECK-NEXT:    bl _Znam47; CHECK-NEXT:    mov r0, r448; CHECK-NEXT:    pop {r4, pc}49%val = load i32, ptr %m_degree, align 450%res = call %umul.ty @llvm.umul.with.overflow.i32(i32 %val, i32 8)51%ov = extractvalue %umul.ty %res, 152%mul = extractvalue %umul.ty %res, 053%sel = select i1 %ov, i32 -1, i32 %mul54%ret = call noalias ptr @_Znam(i32 %sel)55ret i32 056}57 58declare noalias ptr @_Znam(i32)59