[LLVMdev] Instruction does not dominate all its uses error
Apala Guha
apala.guha at gmail.com
Tue Aug 26 06:44:26 PDT 2014
I am getting the following error :
Instruction does not dominate all uses!
%88 = phi float [ %42, %._crit_edge ], [ %85, %43 ]
%90 = fsub float 1.000000e+00, %88
Instruction does not dominate all uses!
%88 = phi float [ %42, %._crit_edge ], [ %85, %43 ]
%92 = phi float [ %88, %._crit_edge1 ], [ %90, %89 ]
for the following code:
define float @CNDF(float %InputX) nounwind uwtable {
%1 = fcmp olt float %InputX, 0.000000e+00
br i1 %1, label %43, label %._crit_edge
._crit_edge: ; preds = %0
%2 = fmul float %InputX, -5.000000e-01
%3 = fmul float %InputX, %2
%4 = fpext float %3 to double
%5 = tail call double @exp(double %4) nounwind
%6 = fptrunc double %5 to float
%7 = fpext float %6 to double
%8 = fmul double %7, 0x3FD9884533D43651
%9 = fptrunc double %8 to float
%10 = fpext float %InputX to double
%11 = fmul double %10, 2.316419e-01
%12 = fptrunc double %11 to float
%13 = fadd float %12, 1.000000e+00
%14 = fdiv float 1.000000e+00, %13
%15 = bitcast float %14 to float
%16 = bitcast float %15 to float
%17 = bitcast float %15 to float
%18 = fmul float %17, %17
%19 = fmul float %17, %18
%20 = fmul float %16, %19
%21 = fmul float %16, %20
%22 = fpext float %14 to double
%23 = fmul double %22, 0x3FD470BF3A92F8EC
%24 = fptrunc double %23 to float
%25 = fpext float %18 to double
%26 = fmul double %25, 0xBFD6D1F0E5A8325B
%27 = fptrunc double %26 to float
%28 = fpext float %19 to double
%29 = fmul double %28, 0x3FFC80EF025F5E68
%30 = fptrunc double %29 to float
%31 = fadd float %27, %30
%32 = fpext float %20 to double
%33 = fmul double %32, 0xBFFD23DD4EF278D0
%34 = fptrunc double %33 to float
%35 = fadd float %31, %34
%36 = fpext float %21 to double
%37 = fmul double %36, 0x3FF548CDD6F42943
%38 = fptrunc double %37 to float
%39 = fadd float %35, %38
%40 = fadd float %24, %39
%41 = fmul float %9, %40
%42 = fsub float 1.000000e+00, %41
br label %86
; <label>:43 ; preds = %0
%44 = fsub float -0.000000e+00, %InputX
%45 = fmul float %44, -5.000000e-01
%46 = fmul float %44, %45
%47 = fpext float %46 to double
%48 = tail call double @exp(double %47) nounwind
%49 = fptrunc double %48 to float
%50 = fpext float %49 to double
%51 = fmul double %50, 0x3FD9884533D43651
%52 = fptrunc double %51 to float
%53 = fpext float %44 to double
%54 = fmul double %53, 2.316419e-01
%55 = fptrunc double %54 to float
%56 = fadd float %55, 1.000000e+00
%57 = fdiv float 1.000000e+00, %56
%58 = bitcast float %57 to float
%59 = bitcast float %58 to float
%60 = bitcast float %58 to float
%61 = fmul float %60, %60
%62 = fmul float %60, %61
%63 = fmul float %59, %62
%64 = fmul float %59, %63
%65 = fpext float %57 to double
%66 = fmul double %65, 0x3FD470BF3A92F8EC
%67 = fptrunc double %66 to float
%68 = fpext float %61 to double
%69 = fmul double %68, 0xBFD6D1F0E5A8325B
%70 = fptrunc double %69 to float
%71 = fpext float %62 to double
%72 = fmul double %71, 0x3FFC80EF025F5E68
%73 = fptrunc double %72 to float
%74 = fadd float %70, %73
%75 = fpext float %63 to double
%76 = fmul double %75, 0xBFFD23DD4EF278D0
%77 = fptrunc double %76 to float
%78 = fadd float %74, %77
%79 = fpext float %64 to double
%80 = fmul double %79, 0x3FF548CDD6F42943
%81 = fptrunc double %80 to float
%82 = fadd float %78, %81
%83 = fadd float %67, %82
%84 = fmul float %52, %83
%85 = fsub float 1.000000e+00, %84
br label %86
; <label>:86 ; preds = %43,
%._crit_edge
%87 = phi i1 [ false, %._crit_edge ], [ true, %43 ]
%88 = phi float [ %42, %._crit_edge ], [ %85, %43 ]
br i1 %87, label %89, label %._crit_edge1
._crit_edge1: ; preds = %86
br label %91
; <label>:89 ; preds = %86
%90 = fsub float 1.000000e+00, %88
br label %91
; <label>:91 ; preds = %89,
%._crit_edge1
%92 = phi float [ %88, %._crit_edge1 ], [ %90, %89 ]
ret float %92
}
The error is weird because the said instruction does dominate all its uses.
Any thoughts are welcome.
Thanks.
-Apala
Apala Guha
Assistant Professor
IIIT-Delhi, New Delhi, India
http://www.iiitd.edu.in/~apala
<https://sites.google.com/site/apalaguha/home>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140826/7b5fc45b/attachment.html>
More information about the llvm-dev
mailing list