[Llvm-bgq-discuss] Patches for r176829-20130309 (the current vesta version)

Hal Finkel hfinkel at anl.gov
Thu May 16 07:22:02 CDT 2013


Michael,

Thanks again for reporting these. Regarding the inline asm bug, there appear to be two issues. The first one (that 'v' was not correctly mapping to the QPX registers) was easy to fix (the fix will be included in future releases). Once that is fixed, however, your example still does not work because I get this error:

error: inline asm not supported yet: don't know how to handle tied indirect register inputs

This is referring to the first input (the addr operand); I'll try to implement this for you in the near future.

 -Hal

----- Original Message -----
> Hi,
> 
> originally I intended to send the following as part of a collection
> with more problems I found and you might be interested in. But
> because
> I do not have time at the moment for closer investigation, I just
> send
> it now and will send the other problems sometime later. Please excuse
> the premature style.
> 
> 
> 
> 1. I found two cases where bgclang segfaults on code that works fine
> with xlc (see added files).
> The first is some inline asm, but I don't know whether inline asm is
> supposed to work in clang.
> The second uses IBM-style builtins.
> 
> 
> 2. bgclang is quite unreliable on inline assemble. With this:
> asm (
>             "dcbt       0,%[ptr]  \n"
>             "dcbt  %[c64],%[ptr]  \n"
>             "dcbt %[c128],%[ptr]  \n"
>             "dcbt %[c192],%[ptr]  \n"
>             "dcbt %[c256],%[ptr]  \n"
>             "dcbt %[c320],%[ptr]  \n"
>             : :
>                 [ptr] "+r" (ptr),
>               [c64]  "b" (64),
>               [c128] "b" (128),
>               [c192] "b" (192),
>               [c256] "b" (256),
>               [c320] "b" (320)
>         );
> 
> I sometimes get
> error: invalid input constraint '+r' in asm
> other times
> fatal error: error in backend: Do not know how to split the result of
> this operator!
> (though I am not sure it's this piece of code, clang doesn't give me
> a location)
> 
> 
> 3. There is some issue with the inline functions. The IBM header
> files
> seem to assume -fgnu89-inline (with -std=c99), otherwise I get
> multiple definitions errors from the linker. I don't really
> understand, because the IBM-supported gcc compiler shouldn't have
> this
> problem either.
> 
> 
> 4. The unimplemented-errors using _Complex data type and compound
> expressions ("+=") are inherited from clang?
> 
> 
> Michael
> 
> 2013/3/30 Hal Finkel <hfinkel at anl.gov>:
> > Hello everyone,
> >
> > I've attached the patches for the currently-installed version on
> > vesta (r176829-20130309). These apply to upstream revision
> > r176829. This is the first released version to contain QPX
> > autovectorization for single-precision values (in addition to many
> > other improvements). I've also included the bgclang wrapper script
> > and the libc++ build script (and the llvm build script and the
> > exception_ptr.h wrapper header).
> >
> > Another user-visible change to mention: You no longer need to
> > explicitly include the qpxintrin.h header to use the IBM-style QPX
> > intrinsics. This header is now automatically included for you.
> >
> > For any of you doing first-time on-your-own installs (or anyone
> > else), please feel free to ask questions about how all of this
> > needs to be setup in practice.
> >
> > Sincerely,
> > Hal
> >
> > --
> > Hal Finkel
> > Postdoctoral Appointee
> > Leadership Computing Facility
> > Argonne National Laboratory
> >
> > _______________________________________________
> > llvm-bgq-discuss mailing list
> > llvm-bgq-discuss at lists.alcf.anl.gov
> > https://lists.alcf.anl.gov/mailman/listinfo/llvm-bgq-discuss
> >
> 


More information about the llvm-bgq-discuss mailing list