Skip to content
  1. Sep 16, 2012
  2. Sep 10, 2012
  3. Sep 08, 2012
  4. Sep 06, 2012
  5. Sep 05, 2012
  6. Sep 01, 2012
  7. Aug 31, 2012
  8. Aug 30, 2012
    • Michael Liao's avatar
      Introduce 'UseSSEx' to force SSE legacy encoding · bbd10792
      Michael Liao authored
      - Add 'UseSSEx' to force SSE legacy insn not being selected when AVX is
        enabled.
      
        As the penalty of inter-mixing SSE and AVX instructions, we need
        prevent SSE legacy insn from being generated except explicitly
        specified through some intrinsics. For patterns supported by both
        SSE and AVX, so far, we force AVX insn will be tried first relying on
        AddedComplexity or position in td file. It's error-prone and
        introduces bugs accidentally.
      
        'UseSSEx' is disabled when AVX is turned on. For SSE insns inherited
        by AVX, we need this predicate to force VEX encoding or SSE legacy
        encoding only.
      
        For insns not inherited by AVX, we still use the previous predicates,
        i.e. 'HasSSEx'. So far, these insns fall into the following
        categories:
        * SSE insns with MMX operands
        * SSE insns with GPR/MEM operands only (xFENCE, PREFETCH, CLFLUSH,
          CRC, and etc.)
        * SSE4A insns.
        * MMX insns.
        * x87 insns added by SSE.
      
      2 test cases are modified:
      
       - test/CodeGen/X86/fast-isel-x86-64.ll
         AVX code generation is different from SSE one. 'vcvtsi2sdq' cannot be
         selected by fast-isel due to complicated pattern and fast-isel
         fallback to materialize it from constant pool.
      
       - test/CodeGen/X86/widen_load-1.ll
         AVX code generation is different from SSE one after fixing SSE/AVX
         inter-mixing. Exec-domain fixing prefers 'vmovapd' instead of
         'vmovaps'.
      
      llvm-svn: 162919
      bbd10792
  9. Aug 28, 2012
  10. Aug 27, 2012
  11. Aug 25, 2012
  12. Aug 24, 2012
  13. Aug 19, 2012
  14. Aug 14, 2012
    • Michael Liao's avatar
      fix PR11334 · 34107b91
      Michael Liao authored
      - FP_EXTEND only support extending from vectors with matching elements.
        This results in the scalarization of extending to v2f64 from v2f32,
        which will be legalized to v4f32 not matching with v2f64.
      - add X86-specific VFPEXT supproting extending from v4f32 to v2f64.
      - add BUILD_VECTOR lowering helper to recover back the original
        extending from v4f32 to v2f64.
      - test case is enhanced to include different vector width.
      
      llvm-svn: 161894
      34107b91
  15. Aug 06, 2012
  16. Aug 05, 2012
  17. Aug 02, 2012
  18. Jul 30, 2012
  19. Jul 28, 2012
  20. Jul 27, 2012
  21. Jul 26, 2012
    • Jakob Stoklund Olesen's avatar
      Eliminate a batch of uses of sub_ss and sub_sd in the X86 target. · ceee4a9d
      Jakob Stoklund Olesen authored
      These idempotent sub-register indices don't do anything --- They simply
      map XMM registers to themselves.  They no longer affect register classes
      either since the SubRegClasses field has been removed from Target.td.
      
      This patch replaces XMM->XMM EXTRACT_SUBREG and INSERT_SUBREG patterns
      with COPY_TO_REGCLASS patterns which simply become COPY instructions.
      
      The number of IMPLICIT_DEF instructions before register allocation is
      reduced, and that is the cause of the test case changes.
      
      llvm-svn: 160816
      ceee4a9d
Loading