diff options
author | Igor Breger <igor.breger@intel.com> | 2017-05-11 07:17:40 +0000 |
---|---|---|
committer | Igor Breger <igor.breger@intel.com> | 2017-05-11 07:17:40 +0000 |
commit | c7b5977bb1bd6bdde311d5fc71ee3bbc1e14cdab (patch) | |
tree | 7275ae0c9adf5232b6dbd217c69aaeaa93da1964 /llvm/lib/Target/X86/X86LegalizerInfo.cpp | |
parent | 215f55f526b9f1d146d02f0955a127d6fc0bb703 (diff) | |
download | bcm5719-llvm-c7b5977bb1bd6bdde311d5fc71ee3bbc1e14cdab.tar.gz bcm5719-llvm-c7b5977bb1bd6bdde311d5fc71ee3bbc1e14cdab.zip |
[GlobalISel][X86] G_ICMP support.
Summary: support G_ICMP for scalar types i8/i16/i64.
Reviewers: zvi, guyblank
Reviewed By: guyblank
Subscribers: rovka, kristof.beyls, llvm-commits, krytarowski
Differential Revision: https://reviews.llvm.org/D32995
llvm-svn: 302774
Diffstat (limited to 'llvm/lib/Target/X86/X86LegalizerInfo.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86LegalizerInfo.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86LegalizerInfo.cpp b/llvm/lib/Target/X86/X86LegalizerInfo.cpp index 0849ea98c31..cf26238c023 100644 --- a/llvm/lib/Target/X86/X86LegalizerInfo.cpp +++ b/llvm/lib/Target/X86/X86LegalizerInfo.cpp @@ -91,6 +91,12 @@ void X86LegalizerInfo::setLegalizerInfo32bit() { setAction({G_ZEXT, 1, Ty}, Legal); setAction({G_SEXT, 1, Ty}, Legal); } + + // Comparison + setAction({G_ICMP, s1}, Legal); + + for (auto Ty : {s8, s16, s32, p0}) + setAction({G_ICMP, 1, Ty}, Legal); } void X86LegalizerInfo::setLegalizerInfo64bit() { @@ -143,6 +149,12 @@ void X86LegalizerInfo::setLegalizerInfo64bit() { setAction({G_ZEXT, 1, Ty}, Legal); setAction({G_SEXT, 1, Ty}, Legal); } + + // Comparison + setAction({G_ICMP, s1}, Legal); + + for (auto Ty : {s8, s16, s32, s64, p0}) + setAction({G_ICMP, 1, Ty}, Legal); } void X86LegalizerInfo::setLegalizerInfoSSE1() { |