| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | AMDGPU/GlobalISel: Only make f16 constants legal on f16 targets | Matt Arsenault | 2019-02-12 | 1 | -2/+9 | |
| | | | | | | | We could deal with it, but there's no real point. llvm-svn: 353845 | |||||
| * | GlobalISel: Implement moreElementsVector for implicit_def | Matt Arsenault | 2019-02-11 | 1 | -1/+19 | |
| | | | | | llvm-svn: 353754 | |||||
| * | GlobalISel: Add G_FCANONICALIZE instruction | Matt Arsenault | 2019-02-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 353719 | |||||
| * | AMDGPU/GlobalISel: Fix shift legalization for non-power-of-2 | Matt Arsenault | 2019-02-08 | 1 | -0/+2 | |
| | | | | | | | | | clampScalar doesn't do anything for non-power-of-2 in range. There should probably be a combination rule to reduce the number of matching rules. llvm-svn: 353526 | |||||
| * | AMDGPU/GlobalISel: Fix non-power-of-2 implicit_def | Matt Arsenault | 2019-02-08 | 1 | -1/+2 | |
| | | | | | llvm-svn: 353522 | |||||
| * | AMDGPU/GlobalISel: Don't use a copy in addrspacecast lowering | Matt Arsenault | 2019-02-08 | 1 | -1/+1 | |
| | | | | | llvm-svn: 353516 | |||||
| * | AMDGPU/GlobalISel: Legalize addrspacecast | Matt Arsenault | 2019-02-08 | 1 | -0/+177 | |
| | | | | | | | | Use a placeholder constant for now on targets that need the load from the queue ptr. llvm-svn: 353497 | |||||
| * | GlobalISel: Implement narrowScalar for shift main type | Matt Arsenault | 2019-02-07 | 1 | -3/+9 | |
| | | | | | | | | | | | | | | | | This is pretty much directly ported from SelectionDAG. Doesn't include the shift by non-constant but known bits version, since there isn't a globalisel version of computeKnownBits yet. This shows a disadvantage of targets not specifically which type should be used for the shift amount. If type 0 is legalized before type 1, the operations on the shift amount type use the wider type (which are also less likely to legalize). This can be avoided by targets specifying legalization actions on type 1 earlier than for type 0. llvm-svn: 353455 | |||||
| * | AMDGPU/GlobalISel: Restrict g_implicit_def legality | Matt Arsenault | 2019-02-07 | 1 | -8/+15 | |
| | | | | | llvm-svn: 353452 | |||||
| * | AMDGPU/GlobalISel: Legalize fsqrt | Matt Arsenault | 2019-02-07 | 1 | -0/+12 | |
| | | | | | llvm-svn: 353438 | |||||
| * | AMDGPU/GlobalISel: Legalize some f16 operations | Matt Arsenault | 2019-02-07 | 1 | -4/+16 | |
| | | | | | llvm-svn: 353436 | |||||
| * | GlobalISel: Implement fewerElementsVector for shifts | Matt Arsenault | 2019-02-07 | 1 | -2/+7 | |
| | | | | | | | | | | Introduce a new function which handles instructions with multiple type indices, but have the same number of vector elements. Also legalize v2s16 shifts when applicable. llvm-svn: 353432 | |||||
| * | GlobalISel: Try to make legalize rules more useful for vectors | Matt Arsenault | 2019-02-07 | 1 | -18/+7 | |
| | | | | | | | | Mostly keep the existing functions on scalars, but add versions which also operate based on the vector element size. llvm-svn: 353430 | |||||
| * | AMDGPU/GlobalISel: Legalize select for v4s16 | Matt Arsenault | 2019-02-04 | 1 | -3/+3 | |
| | | | | | | | | Also add some more select tests to help show future legalization changes. llvm-svn: 353045 | |||||
| * | [AMDGPU] Fix -Wunused-variable after rL352978 | Fangrui Song | 2019-02-03 | 1 | -1/+0 | |
| | | | | | llvm-svn: 352982 | |||||
| * | GlobalISel: Implement widenScalar for G_UNMERGE_VALUES | Matt Arsenault | 2019-02-03 | 1 | -1/+2 | |
| | | | | | | | | | | For the scalar case only. Also move the similar G_MERGE_VALUES handling to a separate function and cleanup to make them look more similar. llvm-svn: 352979 | |||||
| * | GlobalISel: Implement widenScalar for G_EXTRACT vector sources | Matt Arsenault | 2019-02-02 | 1 | -0/+18 | |
| | | | | | | | Handle the basic element extract case. llvm-svn: 352978 | |||||
| * | AMDGPU/GlobalISel: Avoid reporting illegal extloads as legal | Matt Arsenault | 2019-02-02 | 1 | -1/+1 | |
| | | | | | | | This avoids breaking a test in a future commit. llvm-svn: 352977 | |||||
| * | AMDGPU/GlobalISel: Legalize icmp for pointer types | Matt Arsenault | 2019-02-02 | 1 | -1/+10 | |
| | | | | | llvm-svn: 352976 | |||||
| * | AMDGPU/GlobalISel: Legalize constant for pointer types | Matt Arsenault | 2019-02-02 | 1 | -3/+4 | |
| | | | | | llvm-svn: 352975 | |||||
| * | AMDGPU/GlobalISel: Legalize select for pointer types | Matt Arsenault | 2019-02-02 | 1 | -4/+12 | |
| | | | | | llvm-svn: 352974 | |||||
| * | GlobalISel: Legalization for inttoptr/ptrtoint | Matt Arsenault | 2019-02-02 | 1 | -6/+44 | |
| | | | | | llvm-svn: 352973 | |||||
| * | GlobalISel: Handle odd splits in fewerElementsVector for load/store | Matt Arsenault | 2019-01-31 | 1 | -1/+2 | |
| | | | | | llvm-svn: 352720 | |||||
| * | GlobalISel: Implement narrowScalar for bswap | Matt Arsenault | 2019-01-31 | 1 | -1/+5 | |
| | | | | | llvm-svn: 352719 | |||||
| * | GlobalISel: Allow bitcount ops to have different result type | Matt Arsenault | 2019-01-31 | 1 | -5/+10 | |
| | | | | | | | For AMDGPU the result is always 32-bit for 64-bit inputs. llvm-svn: 352717 | |||||
| * | GlobalISel: Implement fewerElementsVector for select | Matt Arsenault | 2019-01-30 | 1 | -1/+20 | |
| | | | | | llvm-svn: 352601 | |||||
| * | AMDGPU/GlobalISel: Fix clamping shifts with 16-bit insts | Matt Arsenault | 2019-01-30 | 1 | -2/+3 | |
| | | | | | llvm-svn: 352599 | |||||
| * | GlobalISel: Support narrowScalar for uneven loads | Matt Arsenault | 2019-01-30 | 1 | -0/+8 | |
| | | | | | llvm-svn: 352594 | |||||
| * | GlobalISel: Partially implement widenScalar for MERGE_VALUES | Matt Arsenault | 2019-01-29 | 1 | -7/+8 | |
| | | | | | llvm-svn: 352560 | |||||
| * | GlobalISel: Fix narrowScalar for load/store with different mem size | Matt Arsenault | 2019-01-29 | 1 | -2/+22 | |
| | | | | | | | | | | | This was ignoring the memory size, and producing multiple loads/stores if the operand size was different from the memory size. I assume this is the intent of not having an explicit G_ANYEXTLOAD (although I think that would probably be better). llvm-svn: 352523 | |||||
| * | GlobalISel: Implement narrowScalar for mul | Matt Arsenault | 2019-01-27 | 1 | -0/+1 | |
| | | | | | llvm-svn: 352300 | |||||
| * | GlobalISel: fewerElementsVector for intrinsic_trunc/intrinsic_round | Matt Arsenault | 2019-01-27 | 1 | -1/+2 | |
| | | | | | llvm-svn: 352298 | |||||
| * | AMDGPU/GlobalISel: Use scalarize instead of clampMaxNumElements | Matt Arsenault | 2019-01-26 | 1 | -2/+1 | |
| | | | | | llvm-svn: 352297 | |||||
| * | AMDGPU/GlobalISel: Legalize more bit ops | Matt Arsenault | 2019-01-26 | 1 | -4/+7 | |
| | | | | | llvm-svn: 352295 | |||||
| * | AMDGPU/GlobalISel: Widen small uaddo/usubo | Matt Arsenault | 2019-01-26 | 1 | -1/+2 | |
| | | | | | llvm-svn: 352294 | |||||
| * | AMDGPU/GlobalISel: Remove leftover setAction | Matt Arsenault | 2019-01-25 | 1 | -11/+8 | |
| | | | | | | | Also move G_GEP actions together. llvm-svn: 352168 | |||||
| * | AMDGPU/GlobalISel: Scalarize add/sub | Matt Arsenault | 2019-01-25 | 1 | -3/+1 | |
| | | | | | llvm-svn: 352167 | |||||
| * | GlobalISel: fewerElementsVector for more cast types | Matt Arsenault | 2019-01-25 | 1 | -3/+6 | |
| | | | | | llvm-svn: 352166 | |||||
| * | GlobalISel: fewerElementsVector for a few more trivial ops | Matt Arsenault | 2019-01-25 | 1 | -5/+5 | |
| | | | | | llvm-svn: 352165 | |||||
| * | AMDGPU/GlobalISel: Legalize smulh/umulh and scalarize mul | Matt Arsenault | 2019-01-25 | 1 | -1/+4 | |
| | | | | | llvm-svn: 352162 | |||||
| * | GlobalISel: Support fewerElementsVector for icmp/fcmp | Matt Arsenault | 2019-01-25 | 1 | -6/+8 | |
| | | | | | | | Also legalize 64-bit compares for AMDGPU llvm-svn: 352157 | |||||
| * | GlobalISel: Implement fewerElementsVector for extensions | Matt Arsenault | 2019-01-25 | 1 | -2/+7 | |
| | | | | | llvm-svn: 352155 | |||||
| * | GlobalISel: Add convenience mutatations to scalarize | Matt Arsenault | 2019-01-25 | 1 | -29/+9 | |
| | | | | | llvm-svn: 352143 | |||||
| * | AMDGPU/GlobalISel: Start selectively legalizing 16-bit operations | Matt Arsenault | 2019-01-22 | 1 | -4/+9 | |
| | | | | | | | | | It might be a bit nicer to use the fancy .legalIf and co. predicates, but this was requiring more boilerplate and disables the coverage assertions. llvm-svn: 351886 | |||||
| * | AMDGPU/GlobalISel: Handle legality/regbanks for 32/64-bit shifts | Matt Arsenault | 2019-01-22 | 1 | -2/+3 | |
| | | | | | llvm-svn: 351884 | |||||
| * | GlobalISel: Allow shift amount to be a different type | Matt Arsenault | 2019-01-22 | 1 | -0/+2 | |
| | | | | | | | | | | For AMDGPU the shift amount is never 64-bit, and this needs to use a 32-bit shift. X86 uses i8, but seemed to be hacking around this before. llvm-svn: 351882 | |||||
| * | GlobalISel: Implement widen for extract_vector_elt elt type | Matt Arsenault | 2019-01-22 | 1 | -3/+16 | |
| | | | | | llvm-svn: 351871 | |||||
| * | GlobalISel: Implement fewerElementsVector for basic FP ops | Matt Arsenault | 2019-01-22 | 1 | -20/+28 | |
| | | | | | llvm-svn: 351866 | |||||
| * | AMDGPU/GlobalISel: Remove vectors from legal constant types | Matt Arsenault | 2019-01-22 | 1 | -1/+1 | |
| | | | | | llvm-svn: 351859 | |||||
| * | GlobalISel: Support narrowing zextload/sextload | Matt Arsenault | 2019-01-22 | 1 | -0/+18 | |
| | | | | | llvm-svn: 351856 | |||||

