blob: bc753009c0706d386bc04719ee998d48ffd13c83 [file] [edit]
// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.0-compute -std=hlsl202x -emit-llvm -disable-llvm-passes -hlsl-entry main -o - %s | FileCheck %s
// Verify we are calling the correct overloads
void fn(groupshared float4 Arr[2]);
void fn(inout float4 Arr[2]);
void fn2(groupshared int4 Shared);
void fn2(int4 Local);
[numthreads(4,1,1)]
void main() {
float4 Local[2] = {1.0.xxxx, 2.0.xxxx};
// CHECK: call void @_Z2fnA2_Dv4_f
fn(Local);
// CHECK: call void @_Z3fn2Dv4_i
fn2(11.xxxx);
}
// CHECK-LABEL: define hidden void @_Z2fnA2_Dv4_f(ptr noalias noundef align 4 %Arr)
void fn(inout float4 Arr[2]) {
Arr[1] = 5.0.xxxx;
}
// CHECK-LABEL: define hidden void @_Z3fn2Dv4_i(<4 x i32> noundef %Local) #0 {
void fn2(int4 Local) {
int X = Local.y;
}
// CHECK-LABEL: define hidden void @_Z2fnRA2_U3AS3Dv4_f(ptr addrspace(3) noundef align 4 dereferenceable(32) %Arr)
void fn(groupshared float4 Arr[2]) {
Arr[1] = 7.0.xxxx;
}
// CHECK-LABEL: define hidden void @_Z3fn2RU3AS3Dv4_i(ptr addrspace(3) noundef align 4 dereferenceable(16) %Shared)
void fn2(groupshared int4 Shared) {
Shared.x = 10;
}