1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/Transforms/GVN/basic-undef-test.ll
Daniel Berlin af1954cd08 Update BasicAliasAnalysis to understand that nothing aliases with undef values.
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
2015-05-05 18:10:49 +00:00

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
}