Commit ab4be5d1 by Dominik Vogt Committed by Andreas Krebbel

S/390: PR target/79240: Fix assertion in s390_extzv_shift_ok.

2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/79240
	* config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
	("*r<noxa>sbg_<mode>_sll_bitmask")
	("*extzv_<mode>_srl<clobbercc_or_nocc>")
	("*extzv_<mode>_sll<clobbercc_or_nocc>"):
	Use contiguous_bitmask_nowrap_operand.

2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR target/79240
	* gcc.target/s390/pr79240.c: New test.

From-SVN: r245022
parent 6687d58d
2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
PR target/79240
* config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
("*r<noxa>sbg_<mode>_sll_bitmask")
("*extzv_<mode>_srl<clobbercc_or_nocc>")
("*extzv_<mode>_sll<clobbercc_or_nocc>"):
Use contiguous_bitmask_nowrap_operand.
2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/79268
......
......@@ -4127,7 +4127,7 @@
(lshiftrt:GPR
(match_operand:GPR 1 "nonimmediate_operand" "d")
(match_operand:GPR 3 "nonzero_shift_count_operand" ""))
(match_operand:GPR 2 "contiguous_bitmask_operand" ""))
(match_operand:GPR 2 "contiguous_bitmask_nowrap_operand" ""))
(match_operand:GPR 4 "nonimmediate_operand" "0")))
(clobber (reg:CC CC_REGNUM))]
"TARGET_Z10
......@@ -4143,7 +4143,7 @@
(ashift:GPR
(match_operand:GPR 1 "nonimmediate_operand" "d")
(match_operand:GPR 3 "nonzero_shift_count_operand" ""))
(match_operand:GPR 2 "contiguous_bitmask_operand" ""))
(match_operand:GPR 2 "contiguous_bitmask_nowrap_operand" ""))
(match_operand:GPR 4 "nonimmediate_operand" "0")))
(clobber (reg:CC CC_REGNUM))]
"TARGET_Z10
......@@ -7191,7 +7191,7 @@
(and:GPR (lshiftrt:GPR
(match_operand:GPR 1 "register_operand" "d")
(match_operand:GPR 2 "nonzero_shift_count_operand" ""))
(match_operand:GPR 3 "contiguous_bitmask_operand" "")))]
(match_operand:GPR 3 "contiguous_bitmask_nowrap_operand" "")))]
"<z10_or_zEC12_cond>
/* Note that even for the SImode pattern, the rotate is always DImode. */
&& s390_extzv_shift_ok (<bitsize>, -INTVAL (operands[2]),
......@@ -7205,7 +7205,7 @@
(and:GPR (ashift:GPR
(match_operand:GPR 1 "register_operand" "d")
(match_operand:GPR 2 "nonzero_shift_count_operand" ""))
(match_operand:GPR 3 "contiguous_bitmask_operand" "")))]
(match_operand:GPR 3 "contiguous_bitmask_nowrap_operand" "")))]
"<z10_or_zEC12_cond>
&& s390_extzv_shift_ok (<bitsize>, INTVAL (operands[2]),
INTVAL (operands[3]))"
......
2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
PR target/79240
* gcc.target/s390/pr79240.c: New test.
2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/79268
......
/* This testcase checks that s390_extzv_shift_ok does not cause an assertion
failure. */
/* { dg-do compile } */
/* { dg-options "-w -march=z196 -mtune=zEC12 -m64 -mzarch -O2" } */
int
foo (int a)
{
return sizeof (int) * a + 16 - a * sizeof (int) % 16;
}
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