[LLVMbugs] [Bug 12364] New: Vectorization produces invalid forward reference

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Mar 26 17:38:08 PDT 2012


http://llvm.org/bugs/show_bug.cgi?id=12364

             Bug #: 12364
           Summary: Vectorization produces invalid forward reference
           Product: dragonegg
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Keywords: compile-fail
          Severity: normal
          Priority: P
         Component: New Bugs
        AssignedTo: baldrick at free.fr
        ReportedBy: scott+llvm+bugzilla at pakin.org
                CC: llvmbugs at cs.uiuc.edu, scott+llvm+bugzilla at pakin.org
    Classification: Unclassified


Created attachment 8274
  --> http://llvm.org/bugs/attachment.cgi?id=8274
Minimal reproducer for vectorization failure

The attached Fortran 90 file fails to compile if and only if LLVM vectorization
is enabled:

$ gfortran -O2 -g -fplugin=/usr/local/lib/dragonegg.so -c broken_vector.f90
$ gfortran -O2 -g -fplugin=/usr/local/lib/dragonegg.so
-fplugin-arg-dragonegg-llvm-option=-vectorize -c broken_vector.f90 
Stack dump:
0.    Running pass 'X86 DAG->DAG Instruction Selection' on function
'@broken_vector_'
*** WARNING *** there are active plugins, do not report this as a bug unless
you can reproduce it without enabling any plugins.
Event                            | Plugins
PLUGIN_FINISH_UNIT               | dragonegg
PLUGIN_FINISH                    | dragonegg
PLUGIN_START_UNIT                | dragonegg
PLUGIN_ALL_IPA_PASSES_END        | dragonegg
broken_vector.f90:20:0: internal compiler error: Illegal instruction
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.5/README.Bugs> for instructions.

The problem is reported more precisely when compiling via LLVM IR:

$ gfortran -O2 -g -fplugin=/usr/local/lib/dragonegg.so
-fplugin-arg-dragonegg-emit-ir -fplugin-arg-dragonegg-llvm-option=-vectorize -S
-o broken_vector.ll broken_vector.f90 
$ opt broken_vector.ll -disable-output
opt: broken_vector.ll:52:31: error: invalid forward reference to function
'llvm.powi.v2f32' with wrong type!
  %36 = tail call <2 x float> @llvm.powi.v2f32(<2 x float> %15, <2 x i32> <i32
3, i32 3>), !dbg !36
                              ^

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list