diff options
Diffstat (limited to 'test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll')
-rw-r--r-- | test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll b/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll index 6588a91..22c0782 100644 --- a/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll +++ b/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll @@ -4,22 +4,27 @@ ; CHECK-NOT: bitcast define void @a() { - ret void + ret void } define signext i32 @b(i32* inreg %x) { - ret i32 0 + ret i32 0 } define void @c(...) { - ret void + ret void } define void @g(i32* %y) { - call void bitcast (void ()* @a to void (i32*)*)( i32* noalias %y ) - call <2 x i32> bitcast (i32 (i32*)* @b to <2 x i32> (i32*)*)( i32* inreg null ) ; <<2 x i32>>:1 [#uses=0] +; CHECK-LABEL: @g( +; CHECK: call i64 bitcast (i32 (i32*)* @b to i64 (i32)*)(i32 0) %x = call i64 bitcast (i32 (i32*)* @b to i64 (i32)*)( i32 0 ) ; <i64> [#uses=0] - call void bitcast (void (...)* @c to void (i32)*)( i32 0 ) - call void bitcast (void (...)* @c to void (i32)*)( i32 zeroext 0 ) - ret void + +; The rest should not have bitcasts remaining +; CHECK-NOT: bitcast + call void bitcast (void ()* @a to void (i32*)*)( i32* noalias %y ) + call <2 x i32> bitcast (i32 (i32*)* @b to <2 x i32> (i32*)*)( i32* inreg null ) ; <<2 x i32>>:1 [#uses=0] + call void bitcast (void (...)* @c to void (i32)*)( i32 0 ) + call void bitcast (void (...)* @c to void (i32)*)( i32 zeroext 0 ) + ret void } |