1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mtriple=thumbv6m-eabi -verify-machineinstrs < %s | FileCheck --check-prefix=T1 %s 3; RUN: llc -mtriple=thumbv7m-eabi -verify-machineinstrs < %s | FileCheck --check-prefix=T2 %s 4 5define i32 @addri1(i32 %a, i32 %b) { 6; T1-LABEL: addri1: 7; T1: @ %bb.0: @ %entry 8; T1-NEXT: adds r0, r0, #3 9; T1-NEXT: beq .LBB0_2 10; T1-NEXT: @ %bb.1: @ %false 11; T1-NEXT: movs r0, #5 12; T1-NEXT: bx lr 13; T1-NEXT: .LBB0_2: @ %true 14; T1-NEXT: movs r0, #4 15; T1-NEXT: bx lr 16; 17; T2-LABEL: addri1: 18; T2: @ %bb.0: @ %entry 19; T2-NEXT: adds r0, #3 20; T2-NEXT: mov.w r0, #5 21; T2-NEXT: it eq 22; T2-NEXT: moveq r0, #4 23; T2-NEXT: bx lr 24entry: 25 %c = add i32 %a, 3 26 %d = icmp eq i32 %c, 0 27 br i1 %d, label %true, label %false 28 29true: 30 ret i32 4 31 32false: 33 ret i32 5 34} 35 36define i32 @addri2(i32 %a, i32 %b) { 37; T1-LABEL: addri2: 38; T1: @ %bb.0: @ %entry 39; T1-NEXT: adds r0, #254 40; T1-NEXT: beq .LBB1_2 41; T1-NEXT: @ %bb.1: @ %false 42; T1-NEXT: movs r0, #5 43; T1-NEXT: bx lr 44; T1-NEXT: .LBB1_2: @ %true 45; T1-NEXT: movs r0, #4 46; T1-NEXT: bx lr 47; 48; T2-LABEL: addri2: 49; T2: @ %bb.0: @ %entry 50; T2-NEXT: adds r0, #254 51; T2-NEXT: mov.w r0, #5 52; T2-NEXT: it eq 53; T2-NEXT: moveq r0, #4 54; T2-NEXT: bx lr 55entry: 56 %c = add i32 %a, 254 57 %d = icmp eq i32 %c, 0 58 br i1 %d, label %true, label %false 59 60true: 61 ret i32 4 62 63false: 64 ret i32 5 65} 66