Files
clang-p2996/llvm/test/CodeGen/DirectX/rsqrt_error.ll
Farzon Lotfi 8f9ee39c58 [HLSL] Implement rsqrt intrinsic (#84820)
This change implements #70074
- `hlsl_intrinsics.h` - add the `rsqrt` api
- `DXIL.td` add the llvm intrinsic to DXIL op lowering map.
- `Builtins.td` - add an hlsl builtin for rsqrt.
- `CGBuiltin.cpp` add the ir generation for the rsqrt intrinsic.
- `SemaChecking.cpp` - reuse the one arg float only  checks.
- `IntrinsicsDirectX.td` -add an `rsqrt` intrinsic.
2024-03-14 16:49:33 -04:00

15 lines
470 B
LLVM

; RUN: not opt -S -dxil-op-lower %s 2>&1 | FileCheck %s
; DXIL operation rsqrt does not support double overload type
; CHECK: LLVM ERROR: Invalid Overload Type
; Function Attrs: noinline nounwind optnone
define noundef double @rsqrt_double(double noundef %a) #0 {
entry:
%a.addr = alloca double, align 8
store double %a, ptr %a.addr, align 8
%0 = load double, ptr %a.addr, align 8
%dx.rsqrt = call double @llvm.dx.rsqrt.f64(double %0)
ret double %dx.rsqrt
}