Page MenuHomeFreeBSD
Authored By
cem
Aug 1 2019, 3:09 PM
Size
771 B
Referenced Files
None
Subscribers
None
When explicit -mavx etc are added, Clang generates vectorized ADDs as well:
(gdb) disas /m foo2
Dump of assembler code for function foo2:
23 return ((addr[0] + addr[1] + addr[2] + addr[3] + addr[4] + addr[5]) == 0);
0x0000000000000054 <+4>: vpmovzxbd (%rdi),%xmm0
0x0000000000000059 <+9>: movzbl 0x4(%rdi),%eax
0x000000000000005d <+13>: vpshufd $0x4e,%xmm0,%xmm1
0x0000000000000062 <+18>: vpaddd %xmm0,%xmm1,%xmm0
0x0000000000000066 <+22>: vpshufd $0xe5,%xmm0,%xmm1
0x000000000000006b <+27>: vpaddd %xmm1,%xmm0,%xmm0
0x000000000000006f <+31>: vmovd %xmm0,%ecx
0x0000000000000073 <+35>: add %eax,%ecx
0x0000000000000075 <+37>: movzbl 0x5(%rdi),%edx
0x0000000000000079 <+41>: add %ecx,%edx

File Metadata

Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2089787
Default Alt Text
raw.txt (771 B)

Event Timeline