Stackmap shadows should consider call returns a branch target.
[oota-llvm.git] / test / CodeGen / X86 / nancvt.ll
index 9e5b73d6f320e3d427a813c07cfa2bb871d6308e..8a665fa79cff92d2bb9695badd54f19156db1c31 100644 (file)
@@ -1,7 +1,8 @@
-; RUN: llvm-as < %s | opt -std-compile-opts | llc | grep 2147027116 | count 3
-; RUN: llvm-as < %s | opt -std-compile-opts | llc | grep 2147228864 | count 3
-; RUN: llvm-as < %s | opt -std-compile-opts | llc | grep 2146502828 | count 3
-; RUN: llvm-as < %s | opt -std-compile-opts | llc | grep 2143034560 | count 3
+; RUN: opt < %s -O3 | llc > %t
+; RUN: grep 2147027116 %t | count 3
+; RUN: grep 2147228864 %t | count 3
+; RUN: grep 2146502828 %t | count 3
+; RUN: grep 2143034560 %t | count 3
 ; Compile time conversions of NaNs.
 ; ModuleID = 'nan2.c'
 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
@@ -15,6 +16,8 @@ target triple = "i686-apple-darwin8"
 @.str = internal constant [10 x i8] c"%08x%08x\0A\00"          ; <[10 x i8]*> [#uses=2]
 @.str1 = internal constant [6 x i8] c"%08x\0A\00"              ; <[6 x i8]*> [#uses=2]
 
+@var = external global i32
+
 define i32 @main() {
 entry:
        %retval = alloca i32, align 4           ; <i32*> [#uses=1]
@@ -49,7 +52,8 @@ bb:           ; preds = %bb23
        %tmp17 = ashr i64 %tmp16, %.cast                ; <i64> [#uses=1]
        %tmp1718 = trunc i64 %tmp17 to i32              ; <i32> [#uses=1]
        %tmp19 = getelementptr [10 x i8]* @.str, i32 0, i32 0           ; <i8*> [#uses=1]
-       %tmp20 = call i32 (i8*, ...)* @printf( i8* %tmp19, i32 %tmp1718, i32 %tmp13 )           ; <i32> [#uses=0]
+       store volatile i32 %tmp1718, i32* @var
+       store volatile i32 %tmp13, i32* @var
        %tmp21 = load i32* %i, align 4          ; <i32> [#uses=1]
        %tmp22 = add i32 %tmp21, 1              ; <i32> [#uses=1]
        store i32 %tmp22, i32* %i, align 4
@@ -82,7 +86,7 @@ bb28:         ; preds = %bb46
        %tmp3940 = bitcast float* %tmp39 to i32*                ; <i32*> [#uses=1]
        %tmp41 = load i32* %tmp3940, align 4            ; <i32> [#uses=1]
        %tmp42 = getelementptr [6 x i8]* @.str1, i32 0, i32 0           ; <i8*> [#uses=1]
-       %tmp43 = call i32 (i8*, ...)* @printf( i8* %tmp42, i32 %tmp41 )         ; <i32> [#uses=0]
+       store volatile i32 %tmp41, i32* @var
        %tmp44 = load i32* %i, align 4          ; <i32> [#uses=1]
        %tmp45 = add i32 %tmp44, 1              ; <i32> [#uses=1]
        store i32 %tmp45, i32* %i, align 4
@@ -123,7 +127,8 @@ bb52:               ; preds = %bb78
        %tmp72 = ashr i64 %tmp70, %.cast71              ; <i64> [#uses=1]
        %tmp7273 = trunc i64 %tmp72 to i32              ; <i32> [#uses=1]
        %tmp74 = getelementptr [10 x i8]* @.str, i32 0, i32 0           ; <i8*> [#uses=1]
-       %tmp75 = call i32 (i8*, ...)* @printf( i8* %tmp74, i32 %tmp7273, i32 %tmp66 )           ; <i32> [#uses=0]
+       store volatile i32 %tmp7273, i32* @var
+       store volatile i32 %tmp66, i32* @var
        %tmp76 = load i32* %i, align 4          ; <i32> [#uses=1]
        %tmp77 = add i32 %tmp76, 1              ; <i32> [#uses=1]
        store i32 %tmp77, i32* %i, align 4
@@ -156,7 +161,7 @@ bb84:               ; preds = %bb101
        %tmp9495 = bitcast float* %tmp94 to i32*                ; <i32*> [#uses=1]
        %tmp96 = load i32* %tmp9495, align 4            ; <i32> [#uses=1]
        %tmp97 = getelementptr [6 x i8]* @.str1, i32 0, i32 0           ; <i8*> [#uses=1]
-       %tmp98 = call i32 (i8*, ...)* @printf( i8* %tmp97, i32 %tmp96 )         ; <i32> [#uses=0]
+       store volatile i32 %tmp96, i32* @var
        %tmp99 = load i32* %i, align 4          ; <i32> [#uses=1]
        %tmp100 = add i32 %tmp99, 1             ; <i32> [#uses=1]
        store i32 %tmp100, i32* %i, align 4
@@ -176,5 +181,3 @@ return:             ; preds = %bb106
        %retval107 = load i32* %retval          ; <i32> [#uses=1]
        ret i32 %retval107
 }
-
-declare i32 @printf(i8*, ...)