Matt Arsenault
4103a81d6d
AMDGPU: Fold fneg into fmul
...
Patch mostly by Fiona Glaser
llvm-svn: 291732
2017-01-12 00:23:20 +00:00
Matt Arsenault
2a04ff97ad
AMDGPU: Pull fneg/fabs out of a select
...
Allows better source modifier usage.
llvm-svn: 291729
2017-01-11 23:57:38 +00:00
Matt Arsenault
e7d8ed32f9
AMDGPU: Swap order of operands in fadd/fsub combine
...
FMA is canonicalized to constant in the middle operand. Do
the same so fmad matches and avoid an extra combine step.
llvm-svn: 290313
2016-12-22 04:03:40 +00:00
Matt Arsenault
ef82ad94ea
AMDGPU: Enable some f32 fadd/fsub combines for f16
...
llvm-svn: 290308
2016-12-22 03:40:39 +00:00
Matt Arsenault
d1ceffcd5a
AMDGPU: Run fp combine tests on VI
...
llvm-svn: 290192
2016-12-20 18:55:11 +00:00
Matt Arsenault
bbb47da8a1
AMDGPU: Support commuting with immediate in src0
...
llvm-svn: 280970
2016-09-08 17:19:29 +00:00
Matt Arsenault
44e5483ada
AMDGPU: Add volatile to test loads and stores
...
When the memory vectorizer is enabled, these tests break.
These tests don't really care about the memory instructions,
and it's easier to write check lines with the unmerged loads.
llvm-svn: 266071
2016-04-12 13:38:18 +00:00
Matt Arsenault
cabe02e141
Only do fmul (fadd x, x), c combine if the fadd only has one use
...
This was increasing the instruction count if the fadd has multiple uses.
llvm-svn: 242498
2015-07-17 01:14:35 +00:00