make instcombine only rewrite a chain of computation

(eliminating some extends) if the new type of the
computation is legal or if both the source and dest
are illegal.  This prevents instcombine from changing big
chains of computation into i64 on 32-bit targets for 
example.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86398 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-11-07 19:11:46 +00:00
parent 59a9178fbe
commit 918871ee01
6 changed files with 15 additions and 19 deletions

View File

@@ -1,6 +1,8 @@
; This tests for various complex cast elimination cases instcombine should
; handle.
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"
; RUN: opt < %s -instcombine -S | FileCheck %s
define i1 @test1(i32 %X) {