llvm/test/CodeGen/PowerPC/BoolRetToIntTest-2.ll
Guozhi Wei f222586866 [PPC] In PPCBoolRetToInt change the bool value to i64 if the target is ppc64
In PPCBoolRetToInt bool value is changed to i32 type. On ppc64 it may introduce an extra zero extension for the return value. This patch changes the integer type to i64 to avoid the zero extension on ppc64.

This patch fixed PR32442.

Differential Revision: https://reviews.llvm.org/D31407



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305001 91177308-0d34-0410-b5e6-96231b3b80d8
2017-06-08 18:27:24 +00:00

20 lines
467 B
LLVM

; RUN: llc -mtriple=powerpc64le-linux-gnu -mcpu=pwr8 < %s | FileCheck %s
; https://bugs.llvm.org/show_bug.cgi?id=32442
; Don't generate zero extension for the return value.
; CHECK-NOT: clrldi
define zeroext i1 @foo(i32 signext %i, i32* %p) {
entry:
%cmp = icmp eq i32 %i, 0
br i1 %cmp, label %return, label %if.end
if.end:
store i32 %i, i32* %p, align 4
br label %return
return:
%retval = phi i1 [ true, %if.end ], [ false, %entry ]
ret i1 %retval
}