Comments

Richard,
I went back to the IA64 vectorization patch you sent me earlier and
tried to get it working on HP-UX. I believe I have it working now and
would like to check in the modified patch. I have attached the full
patch to this email. The differences between this and your patch are
listed below.
The vec_interleave_* change is the biggest difference. When I
tried to switch between unpack.l and unpack.h instructions based on
TARGET_BIG_ENDIAN I get lots of failures. Even when I try to compensate
in the vect.md and ia64.c code where we make gen_vec_interleave_* calls
I continue to get failures.
I am still working on the vec_extract_evenv2sf, vec_extract_oddv2sf code
to try and get that working.
I wanted to see if you had any comments before I check it in.
Steve Ellcey
sje@cup.hp.com
Changes between this patch and your original patch:
vec_interleave_low*/_high* - I swap arguments but do not swap .h for .l.
reduc_splus_v2sf - Added 'if (TARGET_BIG_ENDIAN)' to swap call.
reduc_smax_v2sf
reduc_smin_v2sf
vec_extract_evenv2si - Added 'if (TARGET_BIG_ENDIAN)' to inverleave
call.
vec_extract_oddv2si - Ditto.
vec_extract_evenv2sf - Temporarily turned off to avoid regressions.
vec_extract_oddv2sf - Ditto.

On 02/04/2011 09:37 AM, Steve Ellcey wrote:
> The vec_interleave_* change is the biggest difference. When I> tried to switch between unpack.l and unpack.h instructions based on> TARGET_BIG_ENDIAN I get lots of failures. Even when I try to compensate> in the vect.md and ia64.c code where we make gen_vec_interleave_* calls> I continue to get failures.
Huh. I wonder what I'm missing about this.
> I wanted to see if you had any comments before I check it in.
It's definitely an improvement...
r~