aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNadav Rotem <nadav.rotem@intel.com>2011-10-21 17:35:19 +0000
committerNadav Rotem <nadav.rotem@intel.com>2011-10-21 17:35:19 +0000
commita054bcb4cf26f9710bf6b7b256ba7313260a7335 (patch)
treec977e2d760488c8233649ab9f03737a452a1dde7 /test
parent7926db82686be283ec4cdb68989806c69f388cb1 (diff)
downloadexternal_llvm-a054bcb4cf26f9710bf6b7b256ba7313260a7335.zip
external_llvm-a054bcb4cf26f9710bf6b7b256ba7313260a7335.tar.gz
external_llvm-a054bcb4cf26f9710bf6b7b256ba7313260a7335.tar.bz2
Fix pr11194. When promoting and splitting integers we need to use
ZExtPromotedInteger and SExtPromotedInteger based on the operation we legalize. SetCC return type needs to be legalized via PromoteTargetBoolean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142660 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/2011-20-21-zext-ui2fp.ll19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll b/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll
new file mode 100644
index 0000000..75efcf5
--- /dev/null
+++ b/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll
@@ -0,0 +1,19 @@
+; RUN: llc < %s -march=x86-64 -mcpu=corei7 | FileCheck %s
+target triple = "x86_64-unknown-linux-gnu"
+
+; Check that the booleans are converted using zext and not via sext.
+; 0x1 means that we only look at the first bit.
+
+;CHECK: 0x1
+;CHECK: ui_to_fp_conv
+;CHECK: ret
+define void @ui_to_fp_conv(<8 x float> * nocapture %aFOO, <8 x float>* nocapture %RET) nounwind {
+allocas:
+ %bincmp = fcmp olt <8 x float> <float 1.000000e+00, float 1.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00> , <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
+ %bool2float = uitofp <8 x i1> %bincmp to <8 x float>
+ store <8 x float> %bool2float, <8 x float>* %RET, align 4
+ ret void
+}
+
+
+