131 lines · plain
1; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 | FileCheck %s --check-prefix=PPC642; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc64-ibm-aix-xcoff -mcpu=pwr7 | FileCheck %s --check-prefix=PPC643 4@a = global i8 1, align 15@b = global i16 2, align 26@c = global i32 4, align 47 8define void @t1() nounwind {9; PPC64: t110 %1 = load i8, ptr @a, align 111 call void @foo1(i8 zeroext %1)12; PPC64: lbz13; PPC64-NOT: rldicl14; PPC64-NOT: rlwinm15 ret void16}17 18define void @t2() nounwind {19; PPC64: t220 %1 = load i16, ptr @b, align 221 call void @foo2(i16 zeroext %1)22; PPC64: lhz23; PPC64-NOT: rldicl24; PPC64-NOT: rlwinm25 ret void26}27 28define void @t2a() nounwind {29; PPC64: t2a30 %1 = load i32, ptr @c, align 431 call void @foo3(i32 zeroext %1)32; PPC64: lwz33; PPC64-NOT: rldicl34; PPC64-NOT: rlwinm35 ret void36}37 38declare void @foo1(i8 zeroext)39declare void @foo2(i16 zeroext)40declare void @foo3(i32 zeroext)41 42define i32 @t3() nounwind {43; PPC64: t344 %1 = load i8, ptr @a, align 145 %2 = zext i8 %1 to i3246; PPC64: lbz47; PPC64-NOT: rlwinm48 ret i32 %249}50 51define i32 @t4() nounwind {52; PPC64: t453 %1 = load i16, ptr @b, align 254 %2 = zext i16 %1 to i3255; PPC64: lhz56; PPC64-NOT: rlwinm57 ret i32 %258}59 60define i32 @t5() nounwind {61; PPC64: t562 %1 = load i16, ptr @b, align 263 %2 = sext i16 %1 to i3264; PPC64: lha65; PPC64-NOT: rlwinm66 ret i32 %267}68 69define i32 @t6() nounwind {70; PPC64: t671 %1 = load i8, ptr @a, align 272 %2 = sext i8 %1 to i3273; PPC64: lbz74; PPC64-NOT: rlwinm75 ret i32 %276}77 78define i64 @t7() nounwind {79; PPC64: t780 %1 = load i8, ptr @a, align 181 %2 = zext i8 %1 to i6482; PPC64: lbz83; PPC64-NOT: rldicl84 ret i64 %285}86 87define i64 @t8() nounwind {88; PPC64: t889 %1 = load i16, ptr @b, align 290 %2 = zext i16 %1 to i6491; PPC64: lhz92; PPC64-NOT: rldicl93 ret i64 %294}95 96define i64 @t9() nounwind {97; PPC64: t998 %1 = load i16, ptr @b, align 299 %2 = sext i16 %1 to i64100; PPC64: lha101; PPC64-NOT: extsh102 ret i64 %2103}104 105define i64 @t10() nounwind {106; PPC64: t10107 %1 = load i8, ptr @a, align 2108 %2 = sext i8 %1 to i64109; PPC64: lbz110; PPC64: extsb111 ret i64 %2112}113 114define i64 @t11() nounwind {115; PPC64: t11116 %1 = load i32, ptr @c, align 4117 %2 = zext i32 %1 to i64118; PPC64: lwz119; PPC64-NOT: rldicl120 ret i64 %2121}122 123define i64 @t12() nounwind {124; PPC64: t12125 %1 = load i32, ptr @c, align 4126 %2 = sext i32 %1 to i64127; PPC64: lwa128; PPC64-NOT: extsw129 ret i64 %2130}131