Re: Complex multiplication in gcc

2017-07-17 Thread Sean McAllister
Ah OK, thank you, I wasn't aware of that particular mechanism. If I run the code and break on __mulsc3 it disassembles as I'd expect. On Mon, Jul 17, 2017 at 12:32 PM, Gabriel Paubert wrote: > On Mon, Jul 17, 2017 at 10:51:21AM -0600, Sean McAllister wrote: >> When generating code for a simple i

Re: Complex multiplication in gcc

2017-07-17 Thread Gabriel Paubert
On Mon, Jul 17, 2017 at 10:51:21AM -0600, Sean McAllister wrote: > When generating code for a simple inner loop (instantiated with > std::complex) > > template > void __attribute__((noinline)) benchcore(const cx* __restrict__ aa, > const cx* __restrict__ bb, const cx* __restrict__ cc, cx* __restr

Complex multiplication in gcc

2017-07-17 Thread Sean McAllister
When generating code for a simple inner loop (instantiated with std::complex) template void __attribute__((noinline)) benchcore(const cx* __restrict__ aa, const cx* __restrict__ bb, const cx* __restrict__ cc, cx* __restrict__ dd, cx uu, cx vv, size_t nn) { for (ssize_t ii=0; ii < nn; ii++) {