mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
af1954cd08
It got this in some cases (if one of them was an identified object), but not in all cases. This caused stores to undef to block load-forwarding in some cases, etc. Added test to Transforms/GVN to verify optimization occurs as expected. llvm-svn: 236511
16 lines
419 B
LLVM
16 lines
419 B
LLVM
; RUN: opt -basicaa -gvn -S < %s | FileCheck %s
|
|
; ModuleID = 'test3.ll'
|
|
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
|
|
|
|
define i32 @main(i32 *%foo) {
|
|
entry:
|
|
; CHECK: load i32, i32* %foo, align 4
|
|
%0 = load i32, i32* %foo, align 4
|
|
store i32 5, i32* undef, align 4
|
|
; CHECK-NOT: load i32, i32* %foo, align 4
|
|
%1 = load i32, i32* %foo, align 4
|
|
; CHECK: add i32 %0, %0
|
|
%2 = add i32 %0, %1
|
|
ret i32 %2
|
|
}
|