1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 12:41:49 +01:00

[PowerPC] Fix the bug of ISD::ADDE to set its second return type to glue

Summary:
This patch is to fix the bug imported by rL341634.
In above submit , the the return type of ISD::ADDE is 
14224: SDVTList VTs = DAG.getVTList(MVT::i64, MVT::i64), 
but in fact, the second return type of ISD::ADDE should be 
MVT::Glue not MVT::i64.

Reviewed By: hfinkel

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

llvm-svn: 350061
This commit is contained in:
Kang Zhang 2018-12-25 03:29:51 +00:00
parent d82f19ccdc
commit d5d93391c2
2 changed files with 12 additions and 1 deletions

View File

@ -14389,7 +14389,7 @@ static SDValue combineADDToADDZE(SDNode *N, SelectionDAG &DAG,
return SDValue();
SDLoc DL(N);
SDVTList VTs = DAG.getVTList(MVT::i64, MVT::i64);
SDVTList VTs = DAG.getVTList(MVT::i64, MVT::Glue);
SDValue Cmp = RHS.getOperand(0);
SDValue Z = Cmp.getOperand(0);
auto *Constant = dyn_cast<ConstantSDNode>(Cmp.getOperand(1));

View File

@ -0,0 +1,11 @@
; REQUIRES: asserts
; RUN: llc -mtriple=powerpc64le-unknown-unknown -debug-only=legalize-types \
; RUN: < %s -o /dev/null 2>&1 | FileCheck %s
define i64 @testAddeReturnType(i64 %X, i64 %Z) {
; CHECK: Legally typed node: {{.*}}: i64,glue = adde {{.*}}
%cmp = icmp ne i64 %Z, 0
%conv1 = zext i1 %cmp to i64
%add = add nsw i64 %conv1, %X
ret i64 %add
}