Duncan Sands | ba61fed | 2009-11-11 15:34:13 +0000 | [diff] [blame] | 1 | ; Test to make sure unused llvm.invariant.start calls are not trivially eliminated |
| 2 | ; RUN: opt < %s -instcombine -S | FileCheck %s |
| 3 | |
| 4 | declare void @g(i8*) |
| 5 | |
Dan Gohman | 386e01e | 2010-04-08 18:03:05 +0000 | [diff] [blame] | 6 | declare {}* @llvm.invariant.start(i64, i8* nocapture) nounwind readonly |
Duncan Sands | ba61fed | 2009-11-11 15:34:13 +0000 | [diff] [blame] | 7 | |
| 8 | define i8 @f() { |
| 9 | %a = alloca i8 ; <i8*> [#uses=4] |
| 10 | store i8 0, i8* %a |
Dan Gohman | 386e01e | 2010-04-08 18:03:05 +0000 | [diff] [blame] | 11 | %i = call {}* @llvm.invariant.start(i64 1, i8* %a) ; <{}*> [#uses=0] |
| 12 | ; CHECK: call {}* @llvm.invariant.start |
Duncan Sands | ba61fed | 2009-11-11 15:34:13 +0000 | [diff] [blame] | 13 | call void @g(i8* %a) |
| 14 | %r = load i8* %a ; <i8> [#uses=1] |
| 15 | ret i8 %r |
| 16 | } |