Implement an abstraction to specify precise overload types supported by DXIL ops. These overload types are typically a subset of LLVM intrinsics. Implement the corresponding changes in DXILEmitter backend. Add tests to verify expected errors for unsupported overload types at code generation time. Add tests to check for correct overload error output.
15 lines
399 B
LLVM
15 lines
399 B
LLVM
; RUN: not opt -S -dxil-op-lower %s 2>&1 | FileCheck %s
|
|
|
|
; DXIL operation sin does not support double overload type
|
|
; CHECK: LLVM ERROR: Invalid Overload
|
|
|
|
define noundef double @sin_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
|
|
%1 = call double @llvm.sin.f64(double %0)
|
|
ret double %1
|
|
}
|
|
|