summaryrefslogtreecommitdiff
path: root/release_23/test/Transforms/LICM/2003-12-13-VolatilePromote.ll
blob: 85c93c62bf5c56385b4a4beb8402ede10882ba5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; RUN: llvm-as < %s | opt -licm | llvm-dis | %prcontext volatile 1 | grep Loop

@X = global i32 7		; <i32*> [#uses=2]

define void @testfunc(i32 %i) {
	br label %Loop
Loop:		; preds = %Loop, %0
        ; Should not promote this to a register
	%x = volatile load i32* @X		; <i32> [#uses=1]
	%x2 = add i32 %x, 1		; <i32> [#uses=1]
	store i32 %x2, i32* @X
	br i1 true, label %Out, label %Loop
Out:		; preds = %Loop
	ret void
}