Commit a4a443ce by Andreas Krebbel Committed by Andreas Krebbel

S/390: Fix vrepi constraint letter.

gcc/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
	latter I->K.

gcc/testsuite/ChangeLog:

2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/zvector/vec-splat-1.c: New test.

From-SVN: r231153
parent 6f5a59d1
2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
latter I->K.
2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.md ("bswap<mode>2"): Add support for strv and * config/s390/s390.md ("bswap<mode>2"): Add support for strv and
strvg. strvg.
("bswaphi2"): New pattern. ("bswaphi2"): New pattern.
...@@ -370,11 +370,11 @@ ...@@ -370,11 +370,11 @@
(define_insn "*vec_splats<mode>" (define_insn "*vec_splats<mode>"
[(set (match_operand:V_HW 0 "register_operand" "=v,v,v,v") [(set (match_operand:V_HW 0 "register_operand" "=v,v,v,v")
(vec_duplicate:V_HW (match_operand:<non_vec> 1 "general_operand" "QR,I,v,d")))] (vec_duplicate:V_HW (match_operand:<non_vec> 1 "general_operand" "QR,K,v,d")))]
"TARGET_VX" "TARGET_VX"
"@ "@
vlrep<bhfgq>\t%v0,%1 vlrep<bhfgq>\t%v0,%1
vrepi<bhfgq>\t%v0,%1 vrepi<bhfgq>\t%v0,%h1
vrep<bhfgq>\t%v0,%v1,0 vrep<bhfgq>\t%v0,%v1,0
#" #"
[(set_attr "op_type" "VRX,VRI,VRI,*")]) [(set_attr "op_type" "VRX,VRI,VRI,*")])
......
2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/zvector/vec-splat-1.c: New test.
2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/bswap-1.c (foo64c, foo32a, foo32c): New functions. * gcc.target/s390/bswap-1.c (foo64c, foo32a, foo32c): New functions.
* gcc.target/s390/bswaphi-1.c: New test. * gcc.target/s390/bswaphi-1.c: New test.
......
/* { dg-do compile } */
/* { dg-options "-O3 -mzarch -march=z13 -mzvector" } */
#include <vecintrin.h>
vector signed char v16qi;
vector short v8hi;
vector int v4si;
vector long long v2di;
vector unsigned char uv16qi;
vector unsigned short uv8hi;
vector unsigned int uv4si;
vector unsigned long long uv2di;
int
foo ()
{
v16qi = vec_splats ((signed char)0x77);
uv16qi = vec_splats ((unsigned char)0x77);
v8hi = vec_splats ((short int)0x7f0f);
uv8hi = vec_splats ((unsigned short int)0x7f0f);
v4si = vec_splats ((int)0x7f0f);
uv4si = vec_splats ((unsigned int)0x7f0f);
v2di = vec_splats ((long long)0x7f0f);
uv2di = vec_splats ((unsigned long long)0x7f0f);
}
/* { dg-final { scan-assembler-times "vrepib\t%v.*,119" 1 } } */
/* { dg-final { scan-assembler-times "vrepib\t%v.*,119" 1 } } */
/* { dg-final { scan-assembler-times "vrepih\t%v.*,32527" 1 } } */
/* { dg-final { scan-assembler-times "vrepih\t%v.*,32527" 1 } } */
/* { dg-final { scan-assembler-times "vrepif\t%v.*,32527" 1 } } */
/* { dg-final { scan-assembler-times "vrepif\t%v.*,32527" 1 } } */
/* { dg-final { scan-assembler-times "vrepig\t%v.*,32527" 1 } } */
/* { dg-final { scan-assembler-times "vrepig\t%v.*,32527" 1 } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment