1. Sep 04, 2017
    • Craig Topper's avatar
      [X86] Add patterns to turn an insert into lower subvector of a zero vector... · 8ee36ffb
      Craig Topper authored
      [X86] Add patterns to turn an insert into lower subvector of a zero vector into a move instruction which will implicitly zero the upper elements.
      
      Ideally we'd be able to emit the SUBREG_TO_REG without the explicit register->register move, but we'd need to be sure the producing operation would select something that guaranteed the upper bits were already zeroed.
      
      llvm-svn: 312450
      8ee36ffb
    • Craig Topper's avatar
      [X86] Add VBLENDPS/VPBLENDD to the execution domain fixing tables. · fa82efb5
      Craig Topper authored
      llvm-svn: 312449
      fa82efb5
    • Craig Topper's avatar
      [X86] Canonicalize (concat_vectors X, zero) -> (insert_subvector zero, X, 0). · bb6506d2
      Craig Topper authored
      In a future patch, I plan to teach isel to use a small vector move with implicit zeroing of the upper elements when it sees the (insert_subvector zero, X, 0) pattern.
      
      llvm-svn: 312448
      bb6506d2
    • Hal Finkel's avatar
      [CodeGen] Treat all vector fields as mayalias · c9fac9e1
      Hal Finkel authored
      Because it is common to treat vector types as an array of their elements, or
      even some other type that's not the element type, and thus index into them, we
      can't use struct-path TBAA for these accesses. Even though we already treat all
      vector types as equivalent to 'char', we were using field-offset information
      for them with TBAA, and this renders undefined the intra-value indexing we
      intend to allow. Note that, although 'char' is universally aliasing, with path
      TBAA, we can still differentiate between access to s.a and s.b in
        struct { char a, b; } s;. We can't use this capability as-is for vector types.
      
      Fixes PR33967.
      
      llvm-svn: 312447
      c9fac9e1
    • Michael Kruse's avatar
      [ForwardOpTree] Fix typos. NFC. · 7954a221
      Michael Kruse authored
      llvm-svn: 312446
      7954a221
  2. Sep 03, 2017
  3. Sep 02, 2017