mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-24 22:32:47 +00:00
5c97450df7
DAGCombiner::ReduceLoadWidth was converting (trunc i32 (shl i64 v, 32)) into (shl i32 v, 32) into undef. To prevent this, check the shift count against the final result size. Patch by: Kevin Schoedel Reviewed by: Nadav Rotem git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174972 91177308-0d34-0410-b5e6-96231b3b80d8
16 lines
331 B
LLVM
16 lines
331 B
LLVM
; RUN: llc < %s -march=x86 | FileCheck %s
|
|
|
|
@temp1 = global i64 -77129852189294865, align 8
|
|
|
|
define void @foo() nounwind {
|
|
%x = load i64* @temp1, align 8
|
|
%s = shl i64 %x, 32
|
|
%t = trunc i64 %s to i32
|
|
%z = zext i32 %t to i64
|
|
store i64 %z, i64* @temp1, align 8
|
|
; CHECK: movl $0, temp1+4
|
|
; CHECK: movl $0, temp1
|
|
ret void
|
|
}
|
|
|