OSDN Git Service

Update aosp/master LLVM for rebase to r235153
[android-x86/external-llvm.git] / test / Transforms / InstCombine / 2009-01-19-fmod-constant-float-specials.ll
index 7ab0e3e..b9aa0a2 100644 (file)
@@ -1,7 +1,6 @@
-; RUN: opt %s -simplifycfg -instcombine -S | grep 0x7FF8000000000000 | count 7
-; RUN: opt %s -simplifycfg -instcombine -S | grep 0x7FF00000FFFFFFFF | count 5
-; RUN: opt %s -simplifycfg -instcombine -S | grep {0\\.0} | count 3
-; RUN: opt %s -simplifycfg -instcombine -S | grep {3\\.5} | count 1
+; RUN: opt < %s -simplifycfg -instcombine -S | grep 0x7FF8000000000000 | count 12
+; RUN: opt < %s -simplifycfg -instcombine -S | grep "0\.0" | count 3
+; RUN: opt < %s -simplifycfg -instcombine -S | grep "3\.5" | count 1
 ;
 
 ; ModuleID = 'apf.c'
@@ -16,12 +15,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF0000000000000, float* %x, align 4
        store float 0x7FF8000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -37,12 +36,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF0000000000000, float* %x, align 4
        store float 0.000000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -56,12 +55,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF0000000000000, float* %x, align 4
        store float 3.500000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -75,12 +74,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF0000000000000, float* %x, align 4
        store float 0x7FF0000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -94,12 +93,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF8000000000000, float* %x, align 4
        store float 0x7FF0000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -113,12 +112,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF8000000000000, float* %x, align 4
        store float 0.000000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -132,12 +131,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF8000000000000, float* %x, align 4
        store float 3.500000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -151,12 +150,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0x7FF8000000000000, float* %x, align 4
        store float 0x7FF8000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -170,12 +169,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0.000000e+00, float* %x, align 4
        store float 0x7FF8000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -189,12 +188,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0.000000e+00, float* %x, align 4
        store float 0x7FF0000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -208,12 +207,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0.000000e+00, float* %x, align 4
        store float 0.000000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -227,12 +226,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 0.000000e+00, float* %x, align 4
        store float 3.500000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -246,12 +245,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 3.500000e+00, float* %x, align 4
        store float 0x7FF8000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -265,12 +264,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 3.500000e+00, float* %x, align 4
        store float 0x7FF0000000000000, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -284,12 +283,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 3.500000e+00, float* %x, align 4
        store float 0.000000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry
@@ -303,12 +302,12 @@ entry:
        %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
        store float 3.500000e+00, float* %x, align 4
        store float 3.500000e+00, float* %y, align 4
-       %0 = load float* %y, align 4            ; <float> [#uses=1]
+       %0 = load float, float* %y, align 4             ; <float> [#uses=1]
        %1 = fpext float %0 to double           ; <double> [#uses=1]
-       %2 = load float* %x, align 4            ; <float> [#uses=1]
+       %2 = load float, float* %x, align 4             ; <float> [#uses=1]
        %3 = fpext float %2 to double           ; <double> [#uses=1]
        %4 = frem double %3, %1         ; <double> [#uses=1]
-       %5 = call i32 (i8*, ...)* @printf(i8* getelementptr ([4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind             ; <i32> [#uses=0]
+       %5 = call i32 (i8*, ...) @printf(i8* getelementptr ([4 x i8], [4 x i8]* @"\01LC", i32 0, i32 0), double %4) nounwind            ; <i32> [#uses=0]
        br label %return
 
 return:                ; preds = %entry