X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FCodeGen%2FARM%2F2009-02-27-SpillerBug.ll;h=bc5e6023409f36dd9039d8ef3c2eea2f8f0ca366;hb=05ac87f864a34bff0e6f2a029d48eab3e4cb464a;hp=56e949f832cc76b0c0fda4a392448b9f0c1b1a68;hpb=c8bb37a50a7f5e5627523d2eab3e4860d1796dcc;p=oota-llvm.git diff --git a/test/CodeGen/ARM/2009-02-27-SpillerBug.ll b/test/CodeGen/ARM/2009-02-27-SpillerBug.ll index 56e949f832c..bc5e6023409 100644 --- a/test/CodeGen/ARM/2009-02-27-SpillerBug.ll +++ b/test/CodeGen/ARM/2009-02-27-SpillerBug.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc -march=arm -mattr=+v6,+vfp2 +; RUN: llc < %s -march=arm -mattr=+v6,+vfp2 target triple = "arm-apple-darwin9" @a = external global double ; [#uses=1] @@ -11,7 +11,7 @@ bb.thread: br label %bb52 bb32: ; preds = %bb52 - %0 = add double 0.000000e+00, 0.000000e+00 ; [#uses=1] + %0 = fadd double 0.000000e+00, 0.000000e+00 ; [#uses=1] %1 = add i32 %j.1, 1 ; [#uses=1] br label %bb52 @@ -29,14 +29,14 @@ bb53: ; preds = %bb52 bb55: ; preds = %bb53 %4 = load double* @a, align 4 ; [#uses=10] - %5 = add double %4, 0.000000e+00 ; [#uses=16] + %5 = fadd double %4, 0.000000e+00 ; [#uses=16] %6 = fcmp ogt double %k.4, 0.000000e+00 ; [#uses=1] - %.pn404 = mul double %4, %4 ; [#uses=4] - %.pn402 = mul double %5, %5 ; [#uses=5] + %.pn404 = fmul double %4, %4 ; [#uses=4] + %.pn402 = fmul double %5, %5 ; [#uses=5] %.pn165.in = load double* @N ; [#uses=5] - %.pn198 = mul double 0.000000e+00, %5 ; [#uses=1] - %.pn185 = sub double -0.000000e+00, 0.000000e+00 ; [#uses=1] - %.pn147 = sub double -0.000000e+00, 0.000000e+00 ; [#uses=1] + %.pn198 = fmul double 0.000000e+00, %5 ; [#uses=1] + %.pn185 = fsub double -0.000000e+00, 0.000000e+00 ; [#uses=1] + %.pn147 = fsub double -0.000000e+00, 0.000000e+00 ; [#uses=1] %.pn141 = fdiv double 0.000000e+00, %4 ; [#uses=1] %.pn142 = fdiv double 0.000000e+00, %5 ; [#uses=1] %.pn136 = fdiv double 0.000000e+00, 0.000000e+00 ; [#uses=1] @@ -47,178 +47,178 @@ bb55: ; preds = %bb53 %.pn117 = fdiv double 0.000000e+00, %4 ; [#uses=1] %.pn118 = fdiv double %.pn185, %5 ; [#uses=1] %.pn88 = fdiv double %.pn147, %5 ; [#uses=1] - %.pn81 = sub double %.pn141, %.pn142 ; [#uses=1] - %.pn77 = sub double 0.000000e+00, %.pn136 ; [#uses=1] - %.pn75 = sub double 0.000000e+00, %.pn132 ; [#uses=1] - %.pn69 = sub double %.pn123, %.pn124 ; [#uses=1] - %.pn67 = sub double 0.000000e+00, %.pn120 ; [#uses=1] - %.pn56 = sub double %.pn117, %.pn118 ; [#uses=1] - %.pn42 = sub double 0.000000e+00, %.pn88 ; [#uses=1] - %.pn60 = mul double %.pn81, 0.000000e+00 ; [#uses=1] - %.pn57 = add double %.pn77, 0.000000e+00 ; [#uses=1] - %.pn58 = mul double %.pn75, %.pn165.in ; [#uses=1] - %.pn32 = add double %.pn69, 0.000000e+00 ; [#uses=1] - %.pn33 = mul double %.pn67, %.pn165.in ; [#uses=1] - %.pn17 = sub double 0.000000e+00, %.pn60 ; [#uses=1] - %.pn9 = add double %.pn57, %.pn58 ; [#uses=1] - %.pn30 = mul double 0.000000e+00, %.pn56 ; [#uses=1] - %.pn24 = mul double 0.000000e+00, %.pn42 ; [#uses=1] - %.pn1 = add double %.pn32, %.pn33 ; [#uses=1] - %.pn28 = sub double %.pn30, 0.000000e+00 ; [#uses=1] - %.pn26 = add double %.pn28, 0.000000e+00 ; [#uses=1] - %.pn22 = sub double %.pn26, 0.000000e+00 ; [#uses=1] - %.pn20 = sub double %.pn24, 0.000000e+00 ; [#uses=1] - %.pn18 = add double %.pn22, 0.000000e+00 ; [#uses=1] - %.pn16 = add double %.pn20, 0.000000e+00 ; [#uses=1] - %.pn14 = sub double %.pn18, 0.000000e+00 ; [#uses=1] - %.pn12 = sub double %.pn16, %.pn17 ; [#uses=1] - %.pn10 = add double %.pn14, 0.000000e+00 ; [#uses=1] - %.pn8 = add double %.pn12, 0.000000e+00 ; [#uses=1] - %.pn6 = sub double %.pn10, 0.000000e+00 ; [#uses=1] - %.pn4 = sub double %.pn8, %.pn9 ; [#uses=1] - %.pn2 = add double %.pn6, 0.000000e+00 ; [#uses=1] - %.pn = add double %.pn4, 0.000000e+00 ; [#uses=1] - %N1.0 = sub double %.pn2, 0.000000e+00 ; [#uses=2] - %D1.0 = sub double %.pn, %.pn1 ; [#uses=2] + %.pn81 = fsub double %.pn141, %.pn142 ; [#uses=1] + %.pn77 = fsub double 0.000000e+00, %.pn136 ; [#uses=1] + %.pn75 = fsub double 0.000000e+00, %.pn132 ; [#uses=1] + %.pn69 = fsub double %.pn123, %.pn124 ; [#uses=1] + %.pn67 = fsub double 0.000000e+00, %.pn120 ; [#uses=1] + %.pn56 = fsub double %.pn117, %.pn118 ; [#uses=1] + %.pn42 = fsub double 0.000000e+00, %.pn88 ; [#uses=1] + %.pn60 = fmul double %.pn81, 0.000000e+00 ; [#uses=1] + %.pn57 = fadd double %.pn77, 0.000000e+00 ; [#uses=1] + %.pn58 = fmul double %.pn75, %.pn165.in ; [#uses=1] + %.pn32 = fadd double %.pn69, 0.000000e+00 ; [#uses=1] + %.pn33 = fmul double %.pn67, %.pn165.in ; [#uses=1] + %.pn17 = fsub double 0.000000e+00, %.pn60 ; [#uses=1] + %.pn9 = fadd double %.pn57, %.pn58 ; [#uses=1] + %.pn30 = fmul double 0.000000e+00, %.pn56 ; [#uses=1] + %.pn24 = fmul double 0.000000e+00, %.pn42 ; [#uses=1] + %.pn1 = fadd double %.pn32, %.pn33 ; [#uses=1] + %.pn28 = fsub double %.pn30, 0.000000e+00 ; [#uses=1] + %.pn26 = fadd double %.pn28, 0.000000e+00 ; [#uses=1] + %.pn22 = fsub double %.pn26, 0.000000e+00 ; [#uses=1] + %.pn20 = fsub double %.pn24, 0.000000e+00 ; [#uses=1] + %.pn18 = fadd double %.pn22, 0.000000e+00 ; [#uses=1] + %.pn16 = fadd double %.pn20, 0.000000e+00 ; [#uses=1] + %.pn14 = fsub double %.pn18, 0.000000e+00 ; [#uses=1] + %.pn12 = fsub double %.pn16, %.pn17 ; [#uses=1] + %.pn10 = fadd double %.pn14, 0.000000e+00 ; [#uses=1] + %.pn8 = fadd double %.pn12, 0.000000e+00 ; [#uses=1] + %.pn6 = fsub double %.pn10, 0.000000e+00 ; [#uses=1] + %.pn4 = fsub double %.pn8, %.pn9 ; [#uses=1] + %.pn2 = fadd double %.pn6, 0.000000e+00 ; [#uses=1] + %.pn = fadd double %.pn4, 0.000000e+00 ; [#uses=1] + %N1.0 = fsub double %.pn2, 0.000000e+00 ; [#uses=2] + %D1.0 = fsub double %.pn, %.pn1 ; [#uses=2] br i1 %6, label %bb62, label %bb64 bb62: ; preds = %bb55 - %7 = mul double 0.000000e+00, %4 ; [#uses=1] - %8 = sub double -0.000000e+00, %7 ; [#uses=3] - %9 = mul double 0.000000e+00, %5 ; [#uses=1] - %10 = sub double -0.000000e+00, %9 ; [#uses=3] - %11 = mul double %.pn404, %4 ; [#uses=5] - %12 = mul double %.pn402, %5 ; [#uses=5] - %13 = mul double 0.000000e+00, -2.000000e+00 ; [#uses=1] + %7 = fmul double 0.000000e+00, %4 ; [#uses=1] + %8 = fsub double -0.000000e+00, %7 ; [#uses=3] + %9 = fmul double 0.000000e+00, %5 ; [#uses=1] + %10 = fsub double -0.000000e+00, %9 ; [#uses=3] + %11 = fmul double %.pn404, %4 ; [#uses=5] + %12 = fmul double %.pn402, %5 ; [#uses=5] + %13 = fmul double 0.000000e+00, -2.000000e+00 ; [#uses=1] %14 = fdiv double 0.000000e+00, %.pn402 ; [#uses=1] - %15 = sub double 0.000000e+00, %14 ; [#uses=1] - %16 = mul double 0.000000e+00, %15 ; [#uses=1] - %17 = add double %13, %16 ; [#uses=1] - %18 = mul double %.pn165.in, -2.000000e+00 ; [#uses=5] - %19 = mul double %18, 0.000000e+00 ; [#uses=1] - %20 = add double %17, %19 ; [#uses=1] - %21 = mul double 0.000000e+00, %20 ; [#uses=1] - %22 = add double 0.000000e+00, %21 ; [#uses=1] + %15 = fsub double 0.000000e+00, %14 ; [#uses=1] + %16 = fmul double 0.000000e+00, %15 ; [#uses=1] + %17 = fadd double %13, %16 ; [#uses=1] + %18 = fmul double %.pn165.in, -2.000000e+00 ; [#uses=5] + %19 = fmul double %18, 0.000000e+00 ; [#uses=1] + %20 = fadd double %17, %19 ; [#uses=1] + %21 = fmul double 0.000000e+00, %20 ; [#uses=1] + %22 = fadd double 0.000000e+00, %21 ; [#uses=1] %23 = fdiv double 0.000000e+00, %12 ; [#uses=1] - %24 = sub double 0.000000e+00, %23 ; [#uses=0] - %25 = mul double %18, 0.000000e+00 ; [#uses=1] - %26 = add double 0.000000e+00, %25 ; [#uses=1] - %27 = mul double 0.000000e+00, %26 ; [#uses=1] - %28 = sub double %22, %27 ; [#uses=1] - %29 = mul double %11, %4 ; [#uses=1] - %30 = mul double %12, %5 ; [#uses=3] - %31 = mul double %.pn165.in, -4.000000e+00 ; [#uses=1] - %32 = mul double %.pn165.in, 0x3FF5555555555555 ; [#uses=1] - %33 = mul double %32, 0.000000e+00 ; [#uses=2] - %34 = add double %28, 0.000000e+00 ; [#uses=1] - %35 = sub double -0.000000e+00, 0.000000e+00 ; [#uses=1] + %24 = fsub double 0.000000e+00, %23 ; [#uses=0] + %25 = fmul double %18, 0.000000e+00 ; [#uses=1] + %26 = fadd double 0.000000e+00, %25 ; [#uses=1] + %27 = fmul double 0.000000e+00, %26 ; [#uses=1] + %28 = fsub double %22, %27 ; [#uses=1] + %29 = fmul double %11, %4 ; [#uses=1] + %30 = fmul double %12, %5 ; [#uses=3] + %31 = fmul double %.pn165.in, -4.000000e+00 ; [#uses=1] + %32 = fmul double %.pn165.in, 0x3FF5555555555555 ; [#uses=1] + %33 = fmul double %32, 0.000000e+00 ; [#uses=2] + %34 = fadd double %28, 0.000000e+00 ; [#uses=1] + %35 = fsub double -0.000000e+00, 0.000000e+00 ; [#uses=1] %36 = fdiv double %35, %11 ; [#uses=1] %37 = fdiv double 0.000000e+00, %12 ; [#uses=1] - %38 = sub double %36, %37 ; [#uses=1] - %39 = mul double 0.000000e+00, %38 ; [#uses=1] - %40 = add double 0.000000e+00, %39 ; [#uses=1] - %41 = add double %40, 0.000000e+00 ; [#uses=1] - %42 = add double %41, 0.000000e+00 ; [#uses=1] - %43 = mul double %42, 0.000000e+00 ; [#uses=1] - %44 = sub double %34, %43 ; [#uses=1] + %38 = fsub double %36, %37 ; [#uses=1] + %39 = fmul double 0.000000e+00, %38 ; [#uses=1] + %40 = fadd double 0.000000e+00, %39 ; [#uses=1] + %41 = fadd double %40, 0.000000e+00 ; [#uses=1] + %42 = fadd double %41, 0.000000e+00 ; [#uses=1] + %43 = fmul double %42, 0.000000e+00 ; [#uses=1] + %44 = fsub double %34, %43 ; [#uses=1] %45 = tail call double @llvm.exp.f64(double %8) nounwind ; [#uses=1] - %46 = sub double -0.000000e+00, %45 ; [#uses=2] + %46 = fsub double -0.000000e+00, %45 ; [#uses=2] %47 = fdiv double %46, 0.000000e+00 ; [#uses=1] - %48 = mul double %30, %5 ; [#uses=1] + %48 = fmul double %30, %5 ; [#uses=1] %49 = fdiv double 0.000000e+00, %48 ; [#uses=1] - %50 = sub double %47, %49 ; [#uses=1] - %51 = mul double %50, -4.000000e+00 ; [#uses=1] - %52 = add double %51, 0.000000e+00 ; [#uses=1] + %50 = fsub double %47, %49 ; [#uses=1] + %51 = fmul double %50, -4.000000e+00 ; [#uses=1] + %52 = fadd double %51, 0.000000e+00 ; [#uses=1] %53 = fdiv double %46, %11 ; [#uses=1] - %54 = sub double %53, 0.000000e+00 ; [#uses=1] - %55 = mul double %31, %54 ; [#uses=1] - %56 = add double %52, %55 ; [#uses=1] - %57 = add double %56, 0.000000e+00 ; [#uses=1] - %58 = add double %44, %57 ; [#uses=1] - %59 = sub double %58, 0.000000e+00 ; [#uses=1] + %54 = fsub double %53, 0.000000e+00 ; [#uses=1] + %55 = fmul double %31, %54 ; [#uses=1] + %56 = fadd double %52, %55 ; [#uses=1] + %57 = fadd double %56, 0.000000e+00 ; [#uses=1] + %58 = fadd double %44, %57 ; [#uses=1] + %59 = fsub double %58, 0.000000e+00 ; [#uses=1] %60 = tail call double @llvm.exp.f64(double 0.000000e+00) nounwind ; [#uses=1] - %61 = sub double -0.000000e+00, %60 ; [#uses=1] + %61 = fsub double -0.000000e+00, %60 ; [#uses=1] %62 = fdiv double 0.000000e+00, -6.000000e+00 ; [#uses=1] %63 = fdiv double %61, %5 ; [#uses=1] - %64 = sub double 0.000000e+00, %63 ; [#uses=1] - %65 = mul double %62, %64 ; [#uses=1] - %66 = sub double 0.000000e+00, %65 ; [#uses=1] - %67 = sub double -0.000000e+00, 0.000000e+00 ; [#uses=2] + %64 = fsub double 0.000000e+00, %63 ; [#uses=1] + %65 = fmul double %62, %64 ; [#uses=1] + %66 = fsub double 0.000000e+00, %65 ; [#uses=1] + %67 = fsub double -0.000000e+00, 0.000000e+00 ; [#uses=2] %68 = tail call double @llvm.exp.f64(double %10) nounwind ; [#uses=1] - %69 = sub double -0.000000e+00, %68 ; [#uses=2] + %69 = fsub double -0.000000e+00, %68 ; [#uses=2] %70 = fdiv double %67, %.pn404 ; [#uses=1] %71 = fdiv double %69, %.pn402 ; [#uses=1] - %72 = sub double %70, %71 ; [#uses=1] - %73 = mul double %72, -5.000000e-01 ; [#uses=1] + %72 = fsub double %70, %71 ; [#uses=1] + %73 = fmul double %72, -5.000000e-01 ; [#uses=1] %74 = fdiv double %67, %4 ; [#uses=1] %75 = fdiv double %69, %5 ; [#uses=1] - %76 = sub double %74, %75 ; [#uses=1] - %77 = mul double %76, 0.000000e+00 ; [#uses=1] - %78 = add double %73, %77 ; [#uses=1] - %79 = mul double 0.000000e+00, %78 ; [#uses=1] - %80 = add double %66, %79 ; [#uses=1] + %76 = fsub double %74, %75 ; [#uses=1] + %77 = fmul double %76, 0.000000e+00 ; [#uses=1] + %78 = fadd double %73, %77 ; [#uses=1] + %79 = fmul double 0.000000e+00, %78 ; [#uses=1] + %80 = fadd double %66, %79 ; [#uses=1] %81 = fdiv double 0.000000e+00, %.pn404 ; [#uses=1] %82 = fdiv double 0.000000e+00, %.pn402 ; [#uses=1] - %83 = sub double %81, %82 ; [#uses=1] - %84 = mul double %83, -5.000000e-01 ; [#uses=1] + %83 = fsub double %81, %82 ; [#uses=1] + %84 = fmul double %83, -5.000000e-01 ; [#uses=1] %85 = fdiv double 0.000000e+00, %4 ; [#uses=1] %86 = fdiv double 0.000000e+00, %5 ; [#uses=1] - %87 = sub double %85, %86 ; [#uses=1] - %88 = mul double %87, 0.000000e+00 ; [#uses=1] - %89 = add double %84, %88 ; [#uses=1] - %90 = mul double 0.000000e+00, %89 ; [#uses=1] - %91 = sub double %80, %90 ; [#uses=1] + %87 = fsub double %85, %86 ; [#uses=1] + %88 = fmul double %87, 0.000000e+00 ; [#uses=1] + %89 = fadd double %84, %88 ; [#uses=1] + %90 = fmul double 0.000000e+00, %89 ; [#uses=1] + %91 = fsub double %80, %90 ; [#uses=1] %92 = tail call double @llvm.exp.f64(double %8) nounwind ; [#uses=1] - %93 = sub double -0.000000e+00, %92 ; [#uses=1] + %93 = fsub double -0.000000e+00, %92 ; [#uses=1] %94 = tail call double @llvm.exp.f64(double %10) nounwind ; [#uses=1] - %95 = sub double -0.000000e+00, %94 ; [#uses=3] + %95 = fsub double -0.000000e+00, %94 ; [#uses=3] %96 = fdiv double %95, %.pn402 ; [#uses=1] - %97 = sub double 0.000000e+00, %96 ; [#uses=1] - %98 = mul double 0.000000e+00, %97 ; [#uses=1] + %97 = fsub double 0.000000e+00, %96 ; [#uses=1] + %98 = fmul double 0.000000e+00, %97 ; [#uses=1] %99 = fdiv double %93, %11 ; [#uses=1] %100 = fdiv double %95, %12 ; [#uses=1] - %101 = sub double %99, %100 ; [#uses=1] - %102 = sub double %98, %101 ; [#uses=1] + %101 = fsub double %99, %100 ; [#uses=1] + %102 = fsub double %98, %101 ; [#uses=1] %103 = fdiv double %95, %5 ; [#uses=1] - %104 = sub double 0.000000e+00, %103 ; [#uses=1] - %105 = mul double %18, %104 ; [#uses=1] - %106 = add double %102, %105 ; [#uses=1] - %107 = mul double %106, %k.4 ; [#uses=1] - %108 = add double %91, %107 ; [#uses=1] - %109 = sub double %108, 0.000000e+00 ; [#uses=1] + %104 = fsub double 0.000000e+00, %103 ; [#uses=1] + %105 = fmul double %18, %104 ; [#uses=1] + %106 = fadd double %102, %105 ; [#uses=1] + %107 = fmul double %106, %k.4 ; [#uses=1] + %108 = fadd double %91, %107 ; [#uses=1] + %109 = fsub double %108, 0.000000e+00 ; [#uses=1] %110 = tail call double @llvm.exp.f64(double %8) nounwind ; [#uses=1] - %111 = sub double -0.000000e+00, %110 ; [#uses=2] + %111 = fsub double -0.000000e+00, %110 ; [#uses=2] %112 = tail call double @llvm.exp.f64(double %10) nounwind ; [#uses=1] - %113 = sub double -0.000000e+00, %112 ; [#uses=2] + %113 = fsub double -0.000000e+00, %112 ; [#uses=2] %114 = fdiv double %111, %11 ; [#uses=1] %115 = fdiv double %113, %12 ; [#uses=1] - %116 = sub double %114, %115 ; [#uses=1] - %117 = mul double 0.000000e+00, %116 ; [#uses=1] + %116 = fsub double %114, %115 ; [#uses=1] + %117 = fmul double 0.000000e+00, %116 ; [#uses=1] %118 = fdiv double %111, %29 ; [#uses=1] %119 = fdiv double %113, %30 ; [#uses=1] - %120 = sub double %118, %119 ; [#uses=1] - %121 = sub double %117, %120 ; [#uses=1] - %122 = mul double %18, 0.000000e+00 ; [#uses=1] - %123 = add double %121, %122 ; [#uses=1] - %124 = mul double %33, 0.000000e+00 ; [#uses=1] - %125 = add double %123, %124 ; [#uses=1] - %126 = add double %109, %125 ; [#uses=1] + %120 = fsub double %118, %119 ; [#uses=1] + %121 = fsub double %117, %120 ; [#uses=1] + %122 = fmul double %18, 0.000000e+00 ; [#uses=1] + %123 = fadd double %121, %122 ; [#uses=1] + %124 = fmul double %33, 0.000000e+00 ; [#uses=1] + %125 = fadd double %123, %124 ; [#uses=1] + %126 = fadd double %109, %125 ; [#uses=1] %127 = tail call double @llvm.exp.f64(double 0.000000e+00) nounwind ; [#uses=1] - %128 = sub double -0.000000e+00, %127 ; [#uses=2] + %128 = fsub double -0.000000e+00, %127 ; [#uses=2] %129 = fdiv double %128, %30 ; [#uses=1] - %130 = sub double 0.000000e+00, %129 ; [#uses=1] - %131 = sub double 0.000000e+00, %130 ; [#uses=1] + %130 = fsub double 0.000000e+00, %129 ; [#uses=1] + %131 = fsub double 0.000000e+00, %130 ; [#uses=1] %132 = fdiv double 0.000000e+00, %.pn404 ; [#uses=1] - %133 = sub double %132, 0.000000e+00 ; [#uses=1] - %134 = mul double %18, %133 ; [#uses=1] - %135 = add double %131, %134 ; [#uses=1] + %133 = fsub double %132, 0.000000e+00 ; [#uses=1] + %134 = fmul double %18, %133 ; [#uses=1] + %135 = fadd double %131, %134 ; [#uses=1] %136 = fdiv double %128, %5 ; [#uses=1] - %137 = sub double 0.000000e+00, %136 ; [#uses=1] - %138 = mul double %33, %137 ; [#uses=1] - %139 = add double %135, %138 ; [#uses=1] - %140 = sub double %126, %139 ; [#uses=1] - %141 = add double %N1.0, %59 ; [#uses=1] - %142 = add double %D1.0, %140 ; [#uses=1] + %137 = fsub double 0.000000e+00, %136 ; [#uses=1] + %138 = fmul double %33, %137 ; [#uses=1] + %139 = fadd double %135, %138 ; [#uses=1] + %140 = fsub double %126, %139 ; [#uses=1] + %141 = fadd double %N1.0, %59 ; [#uses=1] + %142 = fadd double %D1.0, %140 ; [#uses=1] br label %bb64 bb64: ; preds = %bb62, %bb55