Commit eabb5f48 by Uros Bizjak Committed by Uros Bizjak

re PR target/57807 (Compile failure with __builtin_ia32_unpcklpd with -masm=intel)

2013-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sse_movlhps): Change alternative 3
	of operand 2 to "m".

2013-07-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57807
	* config/i386/sse.md (iptr): New mode attribute.
	(sse2_movq128): Add pointer size overrides for Intel asm dialect.
	(<sse>_vm<plusminus_insn><mode>3): Ditto.
	(<sse>_vmmul<mode>3): Ditto.
	(<sse>_vmdiv<mode>3): Ditto.
	(sse_vmrcpv4sf2): Ditto.
	(<sse>_vmsqrt<mode>2): Ditto.
	(sse_vmrsqrtv4sf2): Ditto.
	(<sse>_vm<code><mode>3): Ditto.
	(avx_vmcmp<mode>3): Ditto.
	(<sse>_vmmaskcmp<mode>3): Ditto.
	(<sse>_comi): Ditto.
	(<sse>_ucomi): Ditto.
	(*xop_vmfrcz_<mode>): Ditto.
	(*fmai_fmadd_<mode>): Ditto.
	(*fmai_fmsub_<mode>): Ditto.
	(*fmai_fnmadd_<mode>): Ditto.
	(*fmai_fnmsub_<mode>): Ditto.
	(*fma4i_vmfmadd_<mode>): Ditto.
	(*fma4i_vmfmsub_<mode>): Ditto.
	(*fma4i_vmfnmadd_<mode>): Ditto.
	(*fma4i_vmfnmsub_<mode>): Ditto.
	(*xop_vmfrcz_<mode>): Ditto.
	(sse_cvtps2pi): Ditto.
	(sse_cvttps2pi): Ditto.
	(sse_cvtss2si): Ditto.
	(sse_cvtss2si_2): Ditto.
	(sse_cvtss2siq_2): Ditto.
	(sse_cvttss2si): Ditto.
	(sse_cvttss2siq): Ditto.
	(sse_cvtsd2si): Ditto.
	(sse_cvtsd2si_2): Ditto.
	(sse_cvtsd2siq_2): Ditto.
	(sse_cvttsd2si): Ditto.
	(sse_cvttsd2siq): Ditto.
	(sse_cvtsd2ss): Ditto.
	(sse_cvtss2sd): Ditto.
	(avx2_pbroadcast<mode>): Ditto.
	(avx2_pbroadcast<mode>_1): Ditto.
	(*avx_vperm_broadcast_v4sf): Ditto.

	(sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
	(sse_movlhps): Ditto.
	(sse_storehps): Ditto.
	(sse_loadhps): Ditto.
	(sse_storelps): Ditto.
	(sse_loadlps): Ditto.
	(*vec_concatv4sf): Ditto.
	(*vec_interleave_highv2df): Ditto.
	(*vec_interleave_lowv2df): Ditto.
	(*vec_extractv2df_1_sse): Ditto.
	(*vec_extractv2df_0_sse): Ditto.
	(sse2_storelpd): Ditto.
	(sse2_loadlpd): Ditto.
	(sse2_movsd): Ditto.
	(*vec_concatv4si): Ditto.
	(vec_concatv2di): Ditto.

	* config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
	for Intel asm dialect.
	(mmx_punpcklwd): Ditto.
	(mmx_punpckldq): Ditto.

	* config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
	for intel assembler dialect.

testsuite/ChangeLog:

2013-07-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57807
	* gcc.target/i386/pr57807.c: New test.

From-SVN: r200737
parent 1f6eac90
2013-07-06 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (sse_movlhps): Change alternative 3
of operand 2 to "m".
2013-07-06 Uros Bizjak <ubizjak@gmail.com>
PR target/57807
* config/i386/sse.md (iptr): New mode attribute.
(sse2_movq128): Add pointer size overrides for Intel asm dialect.
(<sse>_vm<plusminus_insn><mode>3): Ditto.
(<sse>_vmmul<mode>3): Ditto.
(<sse>_vmdiv<mode>3): Ditto.
(sse_vmrcpv4sf2): Ditto.
(<sse>_vmsqrt<mode>2): Ditto.
(sse_vmrsqrtv4sf2): Ditto.
(<sse>_vm<code><mode>3): Ditto.
(avx_vmcmp<mode>3): Ditto.
(<sse>_vmmaskcmp<mode>3): Ditto.
(<sse>_comi): Ditto.
(<sse>_ucomi): Ditto.
(*xop_vmfrcz_<mode>): Ditto.
(*fmai_fmadd_<mode>): Ditto.
(*fmai_fmsub_<mode>): Ditto.
(*fmai_fnmadd_<mode>): Ditto.
(*fmai_fnmsub_<mode>): Ditto.
(*fma4i_vmfmadd_<mode>): Ditto.
(*fma4i_vmfmsub_<mode>): Ditto.
(*fma4i_vmfnmadd_<mode>): Ditto.
(*fma4i_vmfnmsub_<mode>): Ditto.
(*xop_vmfrcz_<mode>): Ditto.
(sse_cvtps2pi): Ditto.
(sse_cvttps2pi): Ditto.
(sse_cvtss2si): Ditto.
(sse_cvtss2si_2): Ditto.
(sse_cvtss2siq_2): Ditto.
(sse_cvttss2si): Ditto.
(sse_cvttss2siq): Ditto.
(sse_cvtsd2si): Ditto.
(sse_cvtsd2si_2): Ditto.
(sse_cvtsd2siq_2): Ditto.
(sse_cvttsd2si): Ditto.
(sse_cvttsd2siq): Ditto.
(sse_cvtsd2ss): Ditto.
(sse_cvtss2sd): Ditto.
(avx2_pbroadcast<mode>): Ditto.
(avx2_pbroadcast<mode>_1): Ditto.
(*avx_vperm_broadcast_v4sf): Ditto.
(sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
(sse_movlhps): Ditto.
(sse_storehps): Ditto.
(sse_loadhps): Ditto.
(sse_storelps): Ditto.
(sse_loadlps): Ditto.
(*vec_concatv4sf): Ditto.
(*vec_interleave_highv2df): Ditto.
(*vec_interleave_lowv2df): Ditto.
(*vec_extractv2df_1_sse): Ditto.
(*vec_extractv2df_0_sse): Ditto.
(sse2_storelpd): Ditto.
(sse2_loadlpd): Ditto.
(sse2_movsd): Ditto.
(*vec_concatv4si): Ditto.
(vec_concatv2di): Ditto.
* config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
for Intel asm dialect.
(mmx_punpcklwd): Ditto.
(mmx_punpckldq): Ditto.
* config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
for intel assembler dialect.
2013-07-06 Jakub Jelinek <jakub@redhat.com>
PR target/29776
......
......@@ -14670,6 +14670,9 @@ ix86_print_operand (FILE *file, rtx x, int code)
/* It doesn't actually matter what mode we use here, as we're
only going to use this for printing. */
x = adjust_address_nv (x, DImode, 8);
/* Output 'qword ptr' for intel assembler dialect. */
if (ASSEMBLER_DIALECT == ASM_INTEL)
code = 'q';
break;
case 'K':
......@@ -1078,7 +1078,7 @@
(const_int 2) (const_int 10)
(const_int 3) (const_int 11)])))]
"TARGET_MMX"
"punpcklbw\t{%2, %0|%0, %2}"
"punpcklbw\t{%2, %0|%0, %k2}"
[(set_attr "type" "mmxcvt")
(set_attr "mode" "DI")])
......@@ -1104,7 +1104,7 @@
(parallel [(const_int 0) (const_int 4)
(const_int 1) (const_int 5)])))]
"TARGET_MMX"
"punpcklwd\t{%2, %0|%0, %2}"
"punpcklwd\t{%2, %0|%0, %k2}"
[(set_attr "type" "mmxcvt")
(set_attr "mode" "DI")])
......@@ -1130,7 +1130,7 @@
(parallel [(const_int 0)
(const_int 2)])))]
"TARGET_MMX"
"punpckldq\t{%2, %0|%0, %2}"
"punpckldq\t{%2, %0|%0, %k2}"
[(set_attr "type" "mmxcvt")
(set_attr "mode" "DI")])
......
2013-07-06 Uros Bizjak <ubizjak@gmail.com>
PR target/57807
* gcc.target/i386/pr57807.c: New test.
2013-07-06 Jakub Jelinek <jakub@redhat.com>
PR target/29776
......
/* { dg-do assemble } */
/* { dg-options "-msse2 -masm=intel" } */
/* { dg-require-effective-target sse2 } */
/* { dg-require-effective-target masm_intel } */
typedef double __v2df __attribute__((__vector_size__(16)));
typedef double __m128d __attribute__((__vector_size__(16), __may_alias__));
__m128d _mm_unpacklo_pd(__m128d __A, __m128d __B) {
return (__m128d)__builtin_ia32_unpcklpd((__v2df)__A, (__v2df)__B);
}
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