llvm.org GIT mirror llvm / 2bfd21c
[X86][MMX][SSE] Tag missed PHADD/PHSUB instructions with WritePHAdd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330545 91177308-0d34-0410-b5e6-96231b3b80d8 Simon Pilgrim 1 year, 6 months ago
3 changed file(s) with 9 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
338338 WriteVecALU>;
339339
340340 defm MMX_PHSUBW : SS3I_binop_rm_int_mm<0x05, "phsubw", int_x86_ssse3_phsub_w,
341 WriteVecALU>;
341 WritePHAdd>;
342342 defm MMX_PHSUBD : SS3I_binop_rm_int_mm<0x06, "phsubd", int_x86_ssse3_phsub_d,
343 WriteVecALU>;
343 WritePHAdd>;
344344 defm MMX_PHSUBSW : SS3I_binop_rm_int_mm<0x07, "phsubsw",int_x86_ssse3_phsub_sw,
345 WriteVecALU>;
345 WritePHAdd>;
346346
347347 // -- Multiplication
348348 defm MMX_PMULLW : MMXI_binop_rm_int<0xD5, "pmullw", int_x86_mmx_pmull_w,
47094709 WriteVecALU>, VEX_4V, VEX_L, VEX_WIG;
47104710 defm VPHADDSW : SS3I_binop_rm_int_y<0x03, "vphaddsw",
47114711 int_x86_avx2_phadd_sw,
4712 WriteVecALU>, VEX_4V, VEX_L, VEX_WIG;
4712 WritePHAdd>, VEX_4V, VEX_L, VEX_WIG;
47134713 defm VPHSUBSW : SS3I_binop_rm_int_y<0x07, "vphsubsw",
47144714 int_x86_avx2_phsub_sw,
4715 WriteVecALU>, VEX_4V, VEX_L, VEX_WIG;
4715 WritePHAdd>, VEX_4V, VEX_L, VEX_WIG;
47164716 }
47174717 }
47184718
30803080 define <16 x i16> @test_phaddsw(<16 x i16> %a0, <16 x i16> %a1, <16 x i16> *%a2) {
30813081 ; GENERIC-LABEL: test_phaddsw:
30823082 ; GENERIC: # %bb.0:
3083 ; GENERIC-NEXT: vphaddsw %ymm1, %ymm0, %ymm0 # sched: [3:1.00]
3084 ; GENERIC-NEXT: vphaddsw (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
3083 ; GENERIC-NEXT: vphaddsw %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
3084 ; GENERIC-NEXT: vphaddsw (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
30853085 ; GENERIC-NEXT: retq # sched: [1:1.00]
30863086 ;
30873087 ; HASWELL-LABEL: test_phaddsw:
32093209 define <16 x i16> @test_phsubsw(<16 x i16> %a0, <16 x i16> %a1, <16 x i16> *%a2) {
32103210 ; GENERIC-LABEL: test_phsubsw:
32113211 ; GENERIC: # %bb.0:
3212 ; GENERIC-NEXT: vphsubsw %ymm1, %ymm0, %ymm0 # sched: [3:1.00]
3213 ; GENERIC-NEXT: vphsubsw (%rdi), %ymm0, %ymm0 # sched: [8:1.00]
3212 ; GENERIC-NEXT: vphsubsw %ymm1, %ymm0, %ymm0 # sched: [1:0.50]
3213 ; GENERIC-NEXT: vphsubsw (%rdi), %ymm0, %ymm0 # sched: [6:0.50]
32143214 ; GENERIC-NEXT: retq # sched: [1:1.00]
32153215 ;
32163216 ; HASWELL-LABEL: test_phsubsw: