[PATCH, rs6000] Fix implementation of vec_pack (vector double, vector double) built-in function

Segher Boessenkool segher@kernel.crashing.org
Sat Jun 16 00:29:00 GMT 2018


Hi!

On Fri, Jun 15, 2018 at 12:30:47PM -0500, Kelvin Nilsen wrote:
> This patch fixes an error in the code generation for vec_pack (vector double, vector double).  As previously implemented, this built-in function translates to the vpkudum instruction.
> 
> This patch causes vec_pack (vector double, vector double) to behave the same as vec_float2 for the same type signature, producing the vmrgow instruction on little-endian targets and the vmrgew instruction on big-endian targets.

> 	* gcc.target/powerpc/builtins-3-p8.c (test_pack_float): Remove
> 	this test.
> 	* gcc.target/powerpc/builtins-9-p8-be.c: New test.
> 	* gcc.target/powerpc/builtins-9-p8-le.c: New test.

Please merge the BE and LE tests to one file (you can use { target be }
and { target le } selectors on the scan-assembler, for example).

> 	* gcc.target/powerpc/builtins-9-p9-le.c: New test.

Why is there a separate p9 test?  What is different from the p8 version?


Segher



More information about the Gcc-patches mailing list