Hi all,
I observed that for some constructors, e.g:
struct specific_fpval {
double Val; specific_fpval(double V) : Val(V) {}
};
the VSX store generated to store V into Val is not specifying any offset register causing %noreg to be generated and R0 to be emitted later on. The semantics of the VSX store (e.g. stdsdx) requires R0 to be used as base if we want zero to be used in the computation of the effective address instead of the content of R0. This patch checks if no index register was generated and forces R0 to be used as base address.
This was causing clang auto-compilation to fail in Debug mode. I understand that VSX support is still work under progress, but I decided to contribute this patch in the event this is something no one else was aware. I included a regression in a separate file.
Thanks!
Samuel