1; RUN: llc -fast-isel -fast-isel-abort=1 -aarch64-atomic-cfg-tidy=0 -verify-machineinstrs -mtriple=aarch64-apple-darwin < %s | FileCheck %s 2 3define i32 @icmp_eq_i1(i1 %a) { 4; CHECK-LABEL: icmp_eq_i1 5; CHECK: tbz w0, #0, {{LBB.+_2}} 6 %1 = icmp eq i1 %a, 0 7 br i1 %1, label %bb1, label %bb2 8bb2: 9 ret i32 1 10bb1: 11 ret i32 0 12} 13 14define i32 @icmp_eq_i8(i8 %a) { 15; CHECK-LABEL: icmp_eq_i8 16; CHECK: uxtb [[REG:w[0-9]+]], w0 17; CHECK: cbz [[REG]], {{LBB.+_2}} 18 %1 = icmp eq i8 %a, 0 19 br i1 %1, label %bb1, label %bb2 20bb2: 21 ret i32 1 22bb1: 23 ret i32 0 24} 25 26define i32 @icmp_eq_i16(i16 %a) { 27; CHECK-LABEL: icmp_eq_i16 28; CHECK: uxth [[REG:w[0-9]+]], w0 29; CHECK: cbz [[REG]], {{LBB.+_2}} 30 %1 = icmp eq i16 %a, 0 31 br i1 %1, label %bb1, label %bb2 32bb2: 33 ret i32 1 34bb1: 35 ret i32 0 36} 37 38define i32 @icmp_eq_i32(i32 %a) { 39; CHECK-LABEL: icmp_eq_i32 40; CHECK: cbz w0, {{LBB.+_2}} 41 %1 = icmp eq i32 %a, 0 42 br i1 %1, label %bb1, label %bb2 43bb2: 44 ret i32 1 45bb1: 46 ret i32 0 47} 48 49define i32 @icmp_eq_i64(i64 %a) { 50; CHECK-LABEL: icmp_eq_i64 51; CHECK: cbz x0, {{LBB.+_2}} 52 %1 = icmp eq i64 %a, 0 53 br i1 %1, label %bb1, label %bb2 54bb2: 55 ret i32 1 56bb1: 57 ret i32 0 58} 59 60define i32 @icmp_eq_ptr(i8* %a) { 61; CHECK-LABEL: icmp_eq_ptr 62; CHECK: cbz x0, {{LBB.+_2}} 63 %1 = icmp eq i8* %a, null 64 br i1 %1, label %bb1, label %bb2 65bb2: 66 ret i32 1 67bb1: 68 ret i32 0 69} 70 71