[GlobalISel][X86] Support G_BRCOND operation.
Summary: Support G_BRCOND operation. For now don't try to fold cmp/trunc instructions.
Reviewers: zvi, guyblank
Reviewed By: guyblank
Subscribers: rovka, llvm-commits, kristof.beyls
Differential Revision: https://reviews.llvm.org/D34754
llvm-svn: 311327
diff --git a/llvm/lib/Target/X86/X86LegalizerInfo.cpp b/llvm/lib/Target/X86/X86LegalizerInfo.cpp
index b107599..05fde0f 100644
--- a/llvm/lib/Target/X86/X86LegalizerInfo.cpp
+++ b/llvm/lib/Target/X86/X86LegalizerInfo.cpp
@@ -80,6 +80,9 @@
for (auto Ty : {s1, s8, s16})
setAction({G_GEP, 1, Ty}, WidenScalar);
+ // Control-flow
+ setAction({G_BRCOND, s1}, Legal);
+
// Constants
for (auto Ty : {s8, s16, s32, p0})
setAction({TargetOpcode::G_CONSTANT, Ty}, Legal);
@@ -141,6 +144,9 @@
for (auto Ty : {s1, s8, s16})
setAction({G_GEP, 1, Ty}, WidenScalar);
+ // Control-flow
+ setAction({G_BRCOND, s1}, Legal);
+
// Constants
for (auto Ty : {s8, s16, s32, s64, p0})
setAction({TargetOpcode::G_CONSTANT, Ty}, Legal);