| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Also fixes missing f32 test.
llvm-svn: 260780
|
| |
|
|
|
|
|
| |
These were only sharing some somewhat incorrect
logic for when to scalarize or split vectors.
llvm-svn: 260490
|
| |
|
|
|
|
|
| |
These weren't actually sharing anything in the common
LowerLOAD.
llvm-svn: 260398
|
| |
|
|
| |
llvm-svn: 259089
|
| |
|
|
|
|
| |
Replace tests with lrp with basic IR expansion
llvm-svn: 258612
|
| |
|
|
| |
llvm-svn: 258343
|
| |
|
|
| |
llvm-svn: 258096
|
| |
|
|
|
|
|
|
|
|
| |
This breaks the tests that were meant for testing
64-bit inline immediates, so move those to shl where
they won't be broken up.
This should be repeated for the other related bit ops.
llvm-svn: 258095
|
| |
|
|
|
|
| |
64-bit shifts are very slow on some subtargets.
llvm-svn: 258090
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Return values can be stored in SGPRs (i32) and VGPRs (f32).
This will be used by functions which expect some bytecode or other binary to
be appended at the end. It allows defining in which registers the return
values will be stored.
v2: don't do this for compute shaders
Reviewers: tstellarAMD, arsenm
Subscribers: arsenm
Differential Revision: http://reviews.llvm.org/D16033
llvm-svn: 257621
|
| |
|
|
|
|
|
| |
The old lowering for uint_to_fp failed opencl conformance.
It might be OK for fast math mode, but I'm not sure.
llvm-svn: 257393
|
| |
|
|
|
|
|
|
| |
The hardware instruction's output on 0 is -1 rather than 32.
Eliminate a test and select to -1. This removes an extra instruction
from the compatability function with HSAIL's firstbit instruction.
llvm-svn: 257352
|
| |
|
|
| |
llvm-svn: 257348
|
| |
|
|
|
|
| |
Also fix bug in vector legalization for bitreverse.
llvm-svn: 255512
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This basic combine was surprisingly missing.
AMDGPU legalizes many operations in terms of 32-bit vector components,
so not doing this results in many extra copies and subregister extracts
that need to be cleaned up later.
InstCombine already does this for the hasOneUse case. The target hook
is to fix a handful of tests which break (e.g. ARM/vmov.ll) which turn
from a vector materialize repeated immediate instruction to a constant
vector load with more scalar copies from it.
llvm-svn: 250129
|
| |
|
|
| |
llvm-svn: 246048
|
| |
|
|
|
|
|
|
|
|
| |
AMDGPU implementation
D9746 added general SMAX/SMIN/UMAX/UMIN pattern matching to SelectionDAGBuilder::visitSelect.
Differential Revision: http://reviews.llvm.org/D12007
llvm-svn: 244960
|
| |
|
|
|
|
| |
Patch by Zoltan Gilian <zoltan.gilian@gmail.com>
llvm-svn: 243459
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This can be done only with moves which theoretically
will optimize better later.
Although this transform increases the instruction count,
it should be code size / cycle count neutral in the worst
VALU case. It also seems to slightly improve a couple
of testcases due to other DAG combines this exposes.
This is probably slightly worse for the SALU case, so
it might be better to handle this during moveToVALU,
although then you lose some simplifications like
the load width reducing in the simple testcase.
llvm-svn: 242177
|
| |
|
|
|
|
| |
Patch by: Zoltan Gilian
llvm-svn: 241861
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change is part of a series of commits dedicated to have a single
DataLayout during compilation by using always the one owned by the
module.
Reviewers: echristo
Subscribers: jholewinski, ted, yaron.keren, rafael, llvm-commits
Differential Revision: http://reviews.llvm.org/D11028
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 241775
|
| |
|
|
| |
llvm-svn: 239657
|
| |
|
|
|
|
| |
This reverts commit 4ea70107c5e51230e9e60f0bf58a0f74aa4885ea.
llvm-svn: 160303
|
|
|
llvm-svn: 160270
|