summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-06-24 22:13:39 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-06-24 22:13:39 +0000
commit95eb45c5d94bfe9360ffc021697a50c6cf8c08cd (patch)
treeccff569afcf67b58b968ce88f204ad9641431949 /include
parent0029534141ee83d827267d4ac9418bbed5704c2e (diff)
downloadllvm-95eb45c5d94bfe9360ffc021697a50c6cf8c08cd.tar.gz
llvm-95eb45c5d94bfe9360ffc021697a50c6cf8c08cd.tar.bz2
llvm-95eb45c5d94bfe9360ffc021697a50c6cf8c08cd.tar.xz
R600: Fix inconsistency in rsq instructions.
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211637 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/IR/IntrinsicsR600.td3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/llvm/IR/IntrinsicsR600.td b/include/llvm/IR/IntrinsicsR600.td
index 2566cc2561..ba69eaae08 100644
--- a/include/llvm/IR/IntrinsicsR600.td
+++ b/include/llvm/IR/IntrinsicsR600.td
@@ -66,4 +66,7 @@ def int_AMDGPU_rcp : GCCBuiltin<"__builtin_amdgpu_rcp">,
def int_AMDGPU_rsq : GCCBuiltin<"__builtin_amdgpu_rsq">,
Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>;
+def int_AMDGPU_rsq_clamped : GCCBuiltin<"__builtin_amdgpu_rsq_clamped">,
+ Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>;
+
} // End TargetPrefix = "AMDGPU"