1; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=ELF64 2 3define signext i8 @ret2(i8 signext %a) nounwind uwtable ssp { 4entry: 5; ELF64: ret2 6; ELF64: extsb 7; ELF64: blr 8 ret i8 %a 9} 10 11define zeroext i8 @ret3(i8 signext %a) nounwind uwtable ssp { 12entry: 13; ELF64: ret3 14; ELF64: rldicl {{[0-9]+}}, {{[0-9]+}}, 0, 56 15; ELF64: blr 16 ret i8 %a 17} 18 19define signext i16 @ret4(i16 signext %a) nounwind uwtable ssp { 20entry: 21; ELF64: ret4 22; ELF64: extsh 23; ELF64: blr 24 ret i16 %a 25} 26 27define zeroext i16 @ret5(i16 signext %a) nounwind uwtable ssp { 28entry: 29; ELF64: ret5 30; ELF64: rldicl {{[0-9]+}}, {{[0-9]+}}, 0, 48 31; ELF64: blr 32 ret i16 %a 33} 34 35define i16 @ret6(i16 %a) nounwind uwtable ssp { 36entry: 37; ELF64: ret6 38; ELF64: rldicl {{[0-9]+}}, {{[0-9]+}}, 0, 48 39; ELF64: blr 40 ret i16 %a 41} 42 43define signext i32 @ret7(i32 signext %a) nounwind uwtable ssp { 44entry: 45; ELF64: ret7 46; ELF64: extsw 47; ELF64: blr 48 ret i32 %a 49} 50 51define zeroext i32 @ret8(i32 signext %a) nounwind uwtable ssp { 52entry: 53; ELF64: ret8 54; ELF64: rldicl {{[0-9]+}}, {{[0-9]+}}, 0, 32 55; ELF64: blr 56 ret i32 %a 57} 58 59define i32 @ret9(i32 %a) nounwind uwtable ssp { 60entry: 61; ELF64: ret9 62; ELF64: rldicl {{[0-9]+}}, {{[0-9]+}}, 0, 32 63; ELF64: blr 64 ret i32 %a 65} 66 67define i64 @ret10(i64 %a) nounwind uwtable ssp { 68entry: 69; ELF64: ret10 70; ELF64-NOT: exts 71; ELF64-NOT: rldicl 72; ELF64: blr 73 ret i64 %a 74} 75 76define float @ret11(float %a) nounwind uwtable ssp { 77entry: 78; ELF64: ret11 79; ELF64: blr 80 ret float %a 81} 82 83define double @ret12(double %a) nounwind uwtable ssp { 84entry: 85; ELF64: ret12 86; ELF64: blr 87 ret double %a 88} 89 90define i8 @ret13() nounwind uwtable ssp { 91entry: 92; ELF64: ret13 93; ELF64: li 94; ELF64: blr 95 ret i8 15; 96} 97 98define i16 @ret14() nounwind uwtable ssp { 99entry: 100; ELF64: ret14 101; ELF64: li 102; ELF64: blr 103 ret i16 -225; 104} 105 106define i32 @ret15() nounwind uwtable ssp { 107entry: 108; ELF64: ret15 109; ELF64: lis 110; ELF64: ori 111; ELF64: blr 112 ret i32 278135; 113} 114 115define i64 @ret16() nounwind uwtable ssp { 116entry: 117; ELF64: ret16 118; ELF64: li 119; ELF64: sldi 120; ELF64: oris 121; ELF64: ori 122; ELF64: blr 123 ret i64 27813515225; 124} 125 126define float @ret17() nounwind uwtable ssp { 127entry: 128; ELF64: ret17 129; ELF64: addis 130; ELF64: lfs 131; ELF64: blr 132 ret float 2.5; 133} 134 135define double @ret18() nounwind uwtable ssp { 136entry: 137; ELF64: ret18 138; ELF64: addis 139; ELF64: lfd 140; ELF64: blr 141 ret double 2.5e-33; 142} 143