Open mattgodbolt opened 6 months ago
The line:
/opt/compiler-explorer/gcc-13.2.0/lib/gcc/x86_64-linux-gnu/13.2.0/include/emmintrin.h:1217
seems to be the thing that triggers the ignoring of the line after, even with just -plt -stdin -binary
and no other filtering.
Yes, this definitely has something to do with that piece being inlined from immintrin.h. Considering that instruction to be library code is reasonable (everything in immintrin.h is tagged attribute((artificial)), so I suspect disassembly output shouldn't point to immintrin.h at all, but that's not a bug anywhere in CE).
Filtering library code when not asked to, less reasonable.
And deleting half of the line and printing long __vector(2))::
is not reasonable either. Looks like two different bugs to me; you may want to investigate the latter first, I suspect it may become hard to reproduce after fixing the library filtering thing.
The CE code correctly outputs this as:
{
"asm": [
{
"labels": [],
"source": null,
"text": "a(long long __vector(2)):"
},
{
"address": 0,
"labels": [],
"opcodes": [
"66",
"0f",
"73",
"d8",
"04"
],
"source": {
"file": null,
"line": 1217,
"mainsource": true
},
"text": " psrldq xmm0,0x4"
},
{
"address": 5,
"labels": [],
"opcodes": [
"c3"
],
"source": {
"file": null,
"line": 6,
"mainsource": true
},
"text": " ret"
}
],
"labelDefinitions": {
"a(long long __vector(2))": 1
}
}
The following input:
will ignore the
psrldq
instruction:From compiler-explorer/compiler-explorer#6188