// 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; }