From 111d6ee655738400fae3bcdbd5f4bb5192ef4f1c Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 27 Jan 2012 01:44:03 +0000 Subject: enhance constant folding to be able to constant fold bitcast of ConstantVector's to integer type. llvm-svn: 149110 --- llvm/test/Transforms/ConstProp/basictest.ll | 11 +++++++++++ llvm/test/Transforms/InstCombine/icmp.ll | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'llvm/test/Transforms') diff --git a/llvm/test/Transforms/ConstProp/basictest.ll b/llvm/test/Transforms/ConstProp/basictest.ll index d0d0a5bb335..09e6e7db437 100644 --- a/llvm/test/Transforms/ConstProp/basictest.ll +++ b/llvm/test/Transforms/ConstProp/basictest.ll @@ -1,5 +1,8 @@ ; RUN: opt < %s -constprop -die -S | FileCheck %s +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" +target triple = "x86_64-apple-macosx10.7.2" + ; This is a basic sanity check for constant propagation. The add instruction ; should be eliminated. define i32 @test1(i1 %B) { @@ -40,3 +43,11 @@ define i1 @TNAN() { %C = or i1 %A, %B ret i1 %C } + +define i128 @vector_to_int_cast() { + %A = bitcast <4 x i32> to i128 + ret i128 %A +; CHECK: @vector_to_int_cast +; CHECK: ret i128 85070591750041656499021422275829170176 +} + \ No newline at end of file diff --git a/llvm/test/Transforms/InstCombine/icmp.ll b/llvm/test/Transforms/InstCombine/icmp.ll index 5e483cbac44..6e91ed20c00 100644 --- a/llvm/test/Transforms/InstCombine/icmp.ll +++ b/llvm/test/Transforms/InstCombine/icmp.ll @@ -121,8 +121,8 @@ define i1 @test12(i1 %A) { %B = icmp ne i64 bitcast (<2 x i32> to i64), %S ret i1 %B ; CHECK: @test12 -; CHECK-NEXT: %B = select i1 -; CHECK-NEXT: ret i1 %B +; CHECK-NEXT: = xor i1 %A, true +; CHECK-NEXT: ret i1 } ; PR6481 -- cgit v1.2.3