• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; Ignore stderr, we expect warnings there
2; RUN: opt < %s -instcombine 2> /dev/null -S | FileCheck %s
3
4; CHECK-NOT: bitcast
5
6define void @a() {
7  ret void
8}
9
10define signext i32 @b(i32* inreg  %x)   {
11  ret i32 0
12}
13
14define void @c(...) {
15  ret void
16}
17
18define void @g(i32* %y) {
19; CHECK-LABEL: @g(
20; CHECK: call i64 bitcast (i32 (i32*)* @b to i64 (i32)*)(i32 0)
21	%x = call i64 bitcast (i32 (i32*)* @b to i64 (i32)*)( i32 0 )		; <i64> [#uses=0]
22
23; The rest should not have bitcasts remaining
24; CHECK-NOT: bitcast
25  call void bitcast (void ()* @a to void (i32*)*)( i32* noalias  %y )
26  call <2 x i32> bitcast (i32 (i32*)* @b to <2 x i32> (i32*)*)( i32* inreg  null )		; <<2 x i32>>:1 [#uses=0]
27  call void bitcast (void (...)* @c to void (i32)*)( i32 0 )
28  call void bitcast (void (...)* @c to void (i32)*)( i32 zeroext  0 )
29  ret void
30}
31