[x86] Fix disassembly of callw instruction
[oota-llvm.git] / test / Transforms / InstCombine / call-cast-target.ll
index 77097caf29e0d5777ba73b37be3be758b180fe4a..1af3317a398b1af3b2aea564d326404e471d8fdf 100644 (file)
@@ -1,15 +1,27 @@
-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep call | not grep bitcast
+; RUN: opt < %s -instcombine -S | FileCheck %s
 
-target endian = little
-target pointersize = 32
+target datalayout = "e-p:32:32"
 target triple = "i686-pc-linux-gnu"
 
-implementation   ; Functions:
+define i32 @main() {
+; CHECK-LABEL: @main
+; CHECK: call i32 bitcast
+entry:
+  %tmp = call i32 bitcast (i8* (i32*)* @ctime to i32 (i32*)*)( i32* null )          ; <i32> [#uses=1]
+  ret i32 %tmp
+}
+
+declare i8* @ctime(i32*)
 
-int %main() {
+define internal { i8 } @foo(i32*) {
 entry:
-       %tmp = call int cast (sbyte* (int*)* %ctime to int (int*)*)( int* null )
-       ret int %tmp
+  ret { i8 } { i8 0 }
 }
 
-declare sbyte* %ctime(int*)
+define void @test_struct_ret() {
+; CHECK-LABEL: @test_struct_ret
+; CHECK-NOT: bitcast
+entry:
+  %0 = call { i8 } bitcast ({ i8 } (i32*)* @foo to { i8 } (i16*)*)(i16* null)
+  ret void
+}