diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-08-18 23:59:21 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-08-18 23:59:21 +0000 |
commit | 5647d84aa48a4b2531708a879be44dd01742a097 (patch) | |
tree | 94327c6d89965407c56d3c9f2a0f43b703c2f697 /llvm/lib/Transforms/Utils/LoopSimplify.cpp | |
parent | 904cb64d647c1d5437123d95c57c861aa61e91a6 (diff) | |
download | bcm5719-llvm-5647d84aa48a4b2531708a879be44dd01742a097.tar.gz bcm5719-llvm-5647d84aa48a4b2531708a879be44dd01742a097.zip |
Re-encoded 128-bit AVX versions of SQRT, RSQRT, RCP have 3 operands
instead of 2. They were already defined this way in their regular
version, but not for the intrinsics versions (*_Int), and that would work
for assembly emission but not for object code, since a MachineOperand
would be missing. This commit fix PR10697.
Also removed the {VSQRT,VRSQRT,VRCP}r_Int forms and match the intrinsic
via INSERT_SUBREG+EXTRACT_SUBREG patterns. The same couldn't be done for
memory versions because sse_load_f32/sse_load_f64 operand need special
handling and don't work like regular "addr" operands.
There are right now 114 "*_Int" and 98 "Int_*" forms! I'm slowly
removing them as I step through, but hope we can get rid of these
someday, they are really annoying :)
llvm-svn: 138012
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopSimplify.cpp')
0 files changed, 0 insertions, 0 deletions