Scalar mask and round RTL templates
gcc/ * config/i386/subst.md (mask_scalar, round_scalar, round_saeonly_scalar): New meta-templates. (mask_scalar_name, mask_scalar_operand3, round_scalar_name, round_scalar_mask_operand3, round_scalar_mask_op3, round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name, round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3, round_saeonly_scalar_constraint, round_saeonly_scalar_prefix): New subst attribute. * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ... <sse>_vm<plusminus_insn><mode>3<mask_scalar_name> <round_scalar_name> ... this. (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ... <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name> <round_scalar_name> ... this. (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ... <sse>_vm<code><mode>3<mask_scalar_name> <round_saeonly_scalar_name> ... this. (v<plusminus_mnemonic><ssescalarmodesuffix> \t{<round_mask_op3>%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... v<plusminus_mnemonic><ssescalarmodesuffix> \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. (v<multdiv_mnemonic><ssescalarmodesuffix> \t{<round_mask_op3>%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... v<multdiv_mnemonic><ssescalarmodesuffix> \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. (v<maxmin_float><ssescalarmodesuffix> \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ... v<maxmin_float><ssescalarmodesuffix> \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| %0<mask_scalar_operand3>, %1, %<iptr>2 <round_saeonly_scalar_mask_op3>} ... this. gcc/testsuite/ * gcc.target/i386/avx512f-vaddsd-3.c: New test for mask 0 verification. * gcc.target/i386/avx512f-vaddss-3.c: Ditto. * gcc.target/i386/avx512f-vdivsd-3.c: Ditto. * gcc.target/i386/avx512f-vdivss-3.c: Ditto. * gcc.target/i386/avx512f-vmaxsd-3.c: Ditto. * gcc.target/i386/avx512f-vmaxss-3.c: Ditto. * gcc.target/i386/avx512f-vminsd-3.c: Ditto. * gcc.target/i386/avx512f-vminss-3.c: Ditto. * gcc.target/i386/avx512f-vmulsd-3.c: Ditto. * gcc.target/i386/avx512f-vmulss-3.c: Ditto. * gcc.target/i386/avx512f-vsubsd-3.c: Ditto. * gcc.target/i386/avx512f-vsubss-3.c: Ditto. From-SVN: r250006
Showing
Please
register
or
sign in
to comment