[PATCH] R600: Fix inconsistency in rsq instructions.

Matt Arsenault Matthew.Arsenault at amd.com
Wed Jun 18 21:23:36 PDT 2014


R600 was using a clamped version of rsq, but SI was not. Add a
new rsq_clamped intrinsic and use them consistently.
    
It's unclear to me from the documentation what behavior
the R600 instructions have, so I assume they have the legacy behavior
described by the SI documents. For R600, use RECIPSQRT_IEEE
for both llvm.AMDGPU.rsq.legacy and llvm.AMDGPU.rsq. R600 also
has RECIPSQRT_FF, which I'm not sure how it fits in here.

http://reviews.llvm.org/D4204

Files:
  include/llvm/IR/IntrinsicsR600.td
  lib/Target/R600/AMDGPUISelLowering.cpp
  lib/Target/R600/AMDGPUISelLowering.h
  lib/Target/R600/AMDGPUInstrInfo.td
  lib/Target/R600/AMDGPUInstructions.td
  lib/Target/R600/AMDGPUIntrinsics.td
  lib/Target/R600/R600ISelLowering.cpp
  lib/Target/R600/R600Instructions.td
  lib/Target/R600/SIInstructions.td
  test/CodeGen/R600/llvm.AMDGPU.legacy.rsq.ll
  test/CodeGen/R600/llvm.AMDGPU.rsq.clamped.f64.ll
  test/CodeGen/R600/llvm.AMDGPU.rsq.clamped.ll
  test/CodeGen/R600/llvm.AMDGPU.rsq.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4204.10602.patch
Type: text/x-patch
Size: 10809 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140619/e6b89701/attachment.bin>


More information about the llvm-commits mailing list