118 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=thumb-eabi -mcpu=cortex-m0 %s -verify-machineinstrs -o - | FileCheck %s3 4define i32 @test1a(i32 %a, i32 %b) {5; CHECK-LABEL: test1a:6; CHECK: @ %bb.0: @ %entry7; CHECK-NEXT: subs r0, r0, r18; CHECK-NEXT: subs r1, r0, #19; CHECK-NEXT: sbcs r0, r110; CHECK-NEXT: bx lr11entry:12 %cmp = icmp ne i32 %a, %b13 %cond = zext i1 %cmp to i3214 ret i32 %cond15}16 17define i32 @test1b(i32 %a, i32 %b) {18; CHECK-LABEL: test1b:19; CHECK: @ %bb.0: @ %entry20; CHECK-NEXT: subs r1, r0, r121; CHECK-NEXT: rsbs r0, r1, #022; CHECK-NEXT: adcs r0, r123; CHECK-NEXT: bx lr24entry:25 %cmp = icmp eq i32 %a, %b26 %cond = zext i1 %cmp to i3227 ret i32 %cond28}29 30define i32 @test2a(i32 %a, i32 %b) {31; CHECK-LABEL: test2a:32; CHECK: @ %bb.0: @ %entry33; CHECK-NEXT: subs r1, r0, r134; CHECK-NEXT: rsbs r0, r1, #035; CHECK-NEXT: adcs r0, r136; CHECK-NEXT: bx lr37entry:38 %cmp = icmp eq i32 %a, %b39 %cond = zext i1 %cmp to i3240 ret i32 %cond41}42 43define i32 @test2b(i32 %a, i32 %b) {44; CHECK-LABEL: test2b:45; CHECK: @ %bb.0: @ %entry46; CHECK-NEXT: subs r0, r0, r147; CHECK-NEXT: subs r1, r0, #148; CHECK-NEXT: sbcs r0, r149; CHECK-NEXT: bx lr50entry:51 %cmp = icmp ne i32 %a, %b52 %cond = zext i1 %cmp to i3253 ret i32 %cond54}55 56define i32 @test3a(i32 %a, i32 %b) {57; CHECK-LABEL: test3a:58; CHECK: @ %bb.0: @ %entry59; CHECK-NEXT: subs r0, r0, r160; CHECK-NEXT: beq .LBB4_261; CHECK-NEXT: @ %bb.1:62; CHECK-NEXT: movs r0, #463; CHECK-NEXT: .LBB4_2: @ %entry64; CHECK-NEXT: bx lr65entry:66 %cmp = icmp eq i32 %a, %b67 %cond = select i1 %cmp, i32 0, i32 468 ret i32 %cond69}70 71define i32 @test3b(i32 %a, i32 %b) {72; CHECK-LABEL: test3b:73; CHECK: @ %bb.0: @ %entry74; CHECK-NEXT: cmp r0, r175; CHECK-NEXT: beq .LBB5_276; CHECK-NEXT: @ %bb.1: @ %entry77; CHECK-NEXT: movs r0, #078; CHECK-NEXT: bx lr79; CHECK-NEXT: .LBB5_2:80; CHECK-NEXT: movs r0, #481; CHECK-NEXT: bx lr82entry:83 %cmp = icmp eq i32 %a, %b84 %cond = select i1 %cmp, i32 4, i32 085 ret i32 %cond86}87 88define i32 @test4a(i32 %a, i32 %b) {89; CHECK-LABEL: test4a:90; CHECK: @ %bb.0: @ %entry91; CHECK-NEXT: cmp r0, r192; CHECK-NEXT: bne .LBB6_293; CHECK-NEXT: @ %bb.1: @ %entry94; CHECK-NEXT: movs r0, #495; CHECK-NEXT: bx lr96; CHECK-NEXT: .LBB6_2:97; CHECK-NEXT: movs r0, #098; CHECK-NEXT: bx lr99entry:100 %cmp = icmp ne i32 %a, %b101 %cond = select i1 %cmp, i32 0, i32 4102 ret i32 %cond103}104 105define i32 @test4b(i32 %a, i32 %b) {106; CHECK-LABEL: test4b:107; CHECK: @ %bb.0: @ %entry108; CHECK-NEXT: subs r0, r0, r1109; CHECK-NEXT: subs r1, r0, #1110; CHECK-NEXT: sbcs r0, r1111; CHECK-NEXT: lsls r0, r0, #2112; CHECK-NEXT: bx lr113entry:114 %cmp = icmp ne i32 %a, %b115 %cond = select i1 %cmp, i32 4, i32 0116 ret i32 %cond117}118