Skip to content
  • Bruno Cardoso Lopes's avatar
    Fix a couple of things: · 8df9cfc2
    Bruno Cardoso Lopes authored
    1) Make non-legal 256-bit loads to be promoted to v4i64. This lets us
    canonize the loads and handle things the same way we use to handle
    for 128-bit registers. Despite of what one of the removed comments
    explained, the load promotion would not mess with VPERM, it's only a
    matter of doing the appropriate bitcasts when this instructions comes
    to be introduced. Also make LOAD v8i32 legal.
    
    2) Doing 1) exposed two bugs:
    - v4i64 was being promoted to itself for several opcodes (introduced
    in r124447 by David Greene) causing endless recursion and the stack to
    explode.
    - there was no support for allOnes BUILD_VECTORs and ANDNP would fail to
    match because it was generating early target constant pools during
    lowering.
    
    3) The testcases are already checked-in, doing 1) exposed the
    bugs in the current testcases.
    
    4) Tidy up code to be more clear and explicit about AVX.
    
    llvm-svn: 135313
    8df9cfc2
Loading