79 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=armv7a < %s | FileCheck %s --check-prefix=ARM3; RUN: llc -mtriple=armv6m < %s | FileCheck %s --check-prefix=THUMB4; RUN: llc -mtriple=armv7m < %s | FileCheck %s --check-prefix=THUMB25 6define void @bool_eq(i1 zeroext %a, i1 zeroext %b, ptr nocapture %c) nounwind {7; ARM-LABEL: bool_eq:8; ARM: @ %bb.0: @ %entry9; ARM-NEXT: cmp r0, r110; ARM-NEXT: bxne lr11; ARM-NEXT: .LBB0_1: @ %if.then12; ARM-NEXT: bx r213;14; THUMB-LABEL: bool_eq:15; THUMB: @ %bb.0: @ %entry16; THUMB-NEXT: push {r7, lr}17; THUMB-NEXT: cmp r0, r118; THUMB-NEXT: bne .LBB0_219; THUMB-NEXT: @ %bb.1: @ %if.then20; THUMB-NEXT: blx r221; THUMB-NEXT: .LBB0_2: @ %if.end22; THUMB-NEXT: pop {r7, pc}23;24; THUMB2-LABEL: bool_eq:25; THUMB2: @ %bb.0: @ %entry26; THUMB2-NEXT: cmp r0, r127; THUMB2-NEXT: it ne28; THUMB2-NEXT: bxne lr29; THUMB2-NEXT: .LBB0_1: @ %if.then30; THUMB2-NEXT: bx r231entry:32 %0 = xor i1 %a, %b33 br i1 %0, label %if.end, label %if.then34 35if.then:36 tail call void %c() #137 br label %if.end38 39if.end:40 ret void41}42 43define void @bool_ne(i1 zeroext %a, i1 zeroext %b, ptr nocapture %c) nounwind {44; ARM-LABEL: bool_ne:45; ARM: @ %bb.0: @ %entry46; ARM-NEXT: cmp r0, r147; ARM-NEXT: bxeq lr48; ARM-NEXT: .LBB1_1: @ %if.then49; ARM-NEXT: bx r250;51; THUMB-LABEL: bool_ne:52; THUMB: @ %bb.0: @ %entry53; THUMB-NEXT: push {r7, lr}54; THUMB-NEXT: cmp r0, r155; THUMB-NEXT: beq .LBB1_256; THUMB-NEXT: @ %bb.1: @ %if.then57; THUMB-NEXT: blx r258; THUMB-NEXT: .LBB1_2: @ %if.end59; THUMB-NEXT: pop {r7, pc}60;61; THUMB2-LABEL: bool_ne:62; THUMB2: @ %bb.0: @ %entry63; THUMB2-NEXT: cmp r0, r164; THUMB2-NEXT: it eq65; THUMB2-NEXT: bxeq lr66; THUMB2-NEXT: .LBB1_1: @ %if.then67; THUMB2-NEXT: bx r268entry:69 %cmp = xor i1 %a, %b70 br i1 %cmp, label %if.then, label %if.end71 72if.then:73 tail call void %c() #174 br label %if.end75 76if.end:77 ret void78}79