This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, rs6000] Fix PR83332 (missing vcond patterns)
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, David Edelsohn <dje dot gcc at gmail dot com>
- Date: Tue, 12 Dec 2017 11:13:02 -0600
- Subject: Re: [PATCH, rs6000] Fix PR83332 (missing vcond patterns)
- Authentication-results: sourceware.org; auth=none
- References: <184e4c3d-02f9-6623-bf0e-451852e7d47b@linux.vnet.ibm.com>
Hi!
On Mon, Dec 11, 2017 at 03:55:20PM -0600, Bill Schmidt wrote:
> A new test case introduced for PR81303 failed on powerpc64 (BE, LE). This
> turns out to be due to a missing standard pattern (vcondv2div2df). This
> and a couple of other patterns are easy to support with existing logic
> by just adding new patterns with appropriate modes. That's all this patch
> does. That's sufficient to cause the failing test to pass.
Nitpicking:
> +(define_expand "vcondv2dfv2di"
> + [(set (match_operand:V2DF 0 "vfloat_operand" "")
No empty default "" arguments please.
> + (if_then_else:V2DF
> + (match_operator 3 "comparison_operator"
> + [(match_operand:V2DI 4 "vint_operand" "")
> + (match_operand:V2DI 5 "vint_operand" "")])
> + (match_operand:V2DF 1 "vfloat_operand" "")
> + (match_operand:V2DF 2 "vfloat_operand" "")))]
> + "VECTOR_UNIT_ALTIVEC_OR_VSX_P (V2DFmode)
> + && VECTOR_UNIT_ALTIVEC_OR_VSX_P (V2DImode)"
> + "
> +{
> + if (rs6000_emit_vector_cond_expr (operands[0], operands[1], operands[2],
> + operands[3], operands[4], operands[5]))
> + DONE;
> + else
> + FAIL;
> +}")
And no "" around the block.
Okay for trunk with that fixed up. Thanks!
Segher