1; RUN: llc < %s -O0 -fast-isel-abort=1 -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios -verify-machineinstrs | FileCheck %s 2; RUN: llc < %s -O0 -fast-isel-abort=1 -relocation-model=dynamic-no-pic -mtriple=armv7-linux-gnueabi -verify-machineinstrs | FileCheck %s 3; RUN: llc < %s -O0 -fast-isel-abort=1 -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios -verify-machineinstrs | FileCheck %s 4 5; Sign-extend of i1 currently not supported by fast-isel 6;define signext i1 @ret0(i1 signext %a) nounwind uwtable ssp { 7;entry: 8; ret i1 %a 9;} 10 11define zeroext i1 @ret1(i1 signext %a) nounwind uwtable ssp { 12entry: 13; CHECK: ret1 14; CHECK: and r0, r0, #1 15; CHECK: bx lr 16 ret i1 %a 17} 18 19define signext i8 @ret2(i8 signext %a) nounwind uwtable ssp { 20entry: 21; CHECK: ret2 22; CHECK: sxtb r0, r0 23; CHECK: bx lr 24 ret i8 %a 25} 26 27define zeroext i8 @ret3(i8 signext %a) nounwind uwtable ssp { 28entry: 29; CHECK: ret3 30; CHECK: and r0, r0, #255 31; CHECK: bx lr 32 ret i8 %a 33} 34 35define signext i16 @ret4(i16 signext %a) nounwind uwtable ssp { 36entry: 37; CHECK: ret4 38; CHECK: sxth r0, r0 39; CHECK: bx lr 40 ret i16 %a 41} 42 43define zeroext i16 @ret5(i16 signext %a) nounwind uwtable ssp { 44entry: 45; CHECK: ret5 46; CHECK: uxth r0, r0 47; CHECK: bx lr 48 ret i16 %a 49} 50 51define i16 @ret6(i16 %a) nounwind uwtable ssp { 52entry: 53; CHECK: ret6 54; CHECK-NOT: uxth 55; CHECK-NOT: sxth 56; CHECK: bx lr 57 ret i16 %a 58} 59