[llvm] r182227 - Mark i64 SETCC as expand so it is turned into a SELECT_CC.
Jakob Stoklund Olesen
stoklund at 2pi.dk
Sun May 19 17:28:37 PDT 2013
Author: stoklund
Date: Sun May 19 19:28:36 2013
New Revision: 182227
URL: http://llvm.org/viewvc/llvm-project?rev=182227&view=rev
Log:
Mark i64 SETCC as expand so it is turned into a SELECT_CC.
Modified:
llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp
llvm/trunk/test/CodeGen/SPARC/64bit.ll
Modified: llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp?rev=182227&r1=182226&r2=182227&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp Sun May 19 19:28:36 2013
@@ -1300,6 +1300,8 @@ SparcTargetLowering::SparcTargetLowering
setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
if (Subtarget->is64Bit()) {
+ setOperationAction(ISD::SELECT, MVT::i64, Expand);
+ setOperationAction(ISD::SETCC, MVT::i64, Expand);
setOperationAction(ISD::BR_CC, MVT::i64, Custom);
setOperationAction(ISD::SELECT_CC, MVT::i64, Custom);
}
Modified: llvm/trunk/test/CodeGen/SPARC/64bit.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SPARC/64bit.ll?rev=182227&r1=182226&r2=182227&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/SPARC/64bit.ll (original)
+++ llvm/trunk/test/CodeGen/SPARC/64bit.ll Sun May 19 19:28:36 2013
@@ -191,3 +191,13 @@ entry:
}
declare void @g(i8*)
+
+; CHECK: expand_setcc
+; CHECK: subcc %i0, 1,
+; CHECK: movl %xcc, 1,
+define i32 @expand_setcc(i64 %a) {
+ %cond = icmp sle i64 %a, 0
+ %cast2 = zext i1 %cond to i32
+ %RV = sub i32 1, %cast2
+ ret i32 %RV
+}
More information about the llvm-commits
mailing list