Unsupported modifier '%=' in extended ASM string

Hi folks,

I have an inline assembly code segment in C code such as

asm volatile("movaps  2500(%0),%%xmm0\n" \
       ...
       "cmpl    $223,%3\n" \
       "jl      MyL1%=\n" \
       "cmpl    $227,%3\n" \
       "jl      MyL2%=\n" \
       "movaps  -908(%0),%%xmm1\n" \
       "MyL2%=: \n" \
       "movaps  -892(%0),%%xmm3\n" \
       "movaps  -876(%0),%%xmm5\n" \
       "movaps  -860(%0),%%xmm7\n" \
       "MyL1%=: \n" \
       "pxor    %%xmm1,%%xmm0\n" \
       ...
);

that I’m trying to compile with either the C or the C++ compiler and running into trouble.

With pgcpp I get

PGCC-F-0356-Unsupported modifier '%=' in extended ASM string (_mt19937.c: 551)
PGCC/x86 Linux 14.9-0: compilation aborted

With pgcc I get

PGC-S-0155-asm string must be no longer than 1024  (_mt19937.c: 551)
PGC/x86-64 Linux 14.9-0: compilation completed with severe errors

Any ideas? I would be happy with a solution using either the C or the C++ compiler. The code compiles fine with Intel, Clang, and GNU C++.

Thanks,
Jozsef

Hi Jozsef,

Very sorry you are being troubled by this issue.

Can you send the full source file to me at trs@pgroup.com? I would like to file a report with our developers, and I need a full test case which demonstrates the problem.

Thanks in advance,

+chris

Hi Jozsef,

I received the source file, thanks.

I have filed a report on this issue as TPR#20859. Our developers are investigating at this time. We will let you know when a fix is available.

Best regards,

+chris

TPR 20859 - UF: inline assembly fails to compile - longer than 1024 char limit

has been fixed in the current 15.4 release.

Thanks for the report.

regards,
dave