Home | History | Annotate | Download | only in InstCombine
      1 ; Ignore stderr, we expect warnings there
      2 ; RUN: opt < %s -instcombine 2> /dev/null -S | FileCheck %s
      3 
      4 ; CHECK-NOT: bitcast
      5 
      6 define void @a() {
      7   ret void
      8 }
      9 
     10 define signext i32 @b(i32* inreg  %x)   {
     11   ret i32 0
     12 }
     13 
     14 define void @c(...) {
     15   ret void
     16 }
     17 
     18 define 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