1cdfd884bSS. Bharadwaj Yadavalli; RUN: opt -S -dxil-op-lower %s | FileCheck %s 243dc3190SXiang Li 343dc3190SXiang Li; Make sure dxil operation function calls for all ComputeID dxil operations are generated. 443dc3190SXiang Li 543dc3190SXiang Litarget datalayout = "e-m:e-p:32:32-i1:32-i8:8-i16:16-i32:32-i64:64-f16:16-f32:32-f64:64-n8:16:32:64" 6cdfd884bSS. Bharadwaj Yadavallitarget triple = "dxil-pc-shadermodel6.7-compute" 743dc3190SXiang Li 8a9c875b1SXiang Li; CHECK-LABEL: @test_thread_id( 943dc3190SXiang Li; Function Attrs: noinline nounwind optnone 1043dc3190SXiang Lidefine i32 @test_thread_id(i32 %a) #0 { 1143dc3190SXiang Lientry: 12*011b6186SFinn Plummer; CHECK:call i32 @dx.op.threadId.i32(i32 93, i32 %{{.*}}) #[[#ATTR:]] 13e0b52086SChris Bieneman %0 = call i32 @llvm.dx.thread.id(i32 %a) 1443dc3190SXiang Li ret i32 %0 1543dc3190SXiang Li} 1643dc3190SXiang Li 17a9c875b1SXiang Li; CHECK-LABEL: @test_group_id( 1843dc3190SXiang Li; Function Attrs: noinline nounwind optnone 1943dc3190SXiang Lidefine i32 @test_group_id(i32 %a) #0 { 2043dc3190SXiang Lientry: 21*011b6186SFinn Plummer; CHECK: call i32 @dx.op.groupId.i32(i32 94, i32 %{{.*}}) #[[#ATTR]] 22e0b52086SChris Bieneman %0 = call i32 @llvm.dx.group.id(i32 %a) 2343dc3190SXiang Li ret i32 %0 2443dc3190SXiang Li} 2543dc3190SXiang Li 26a9c875b1SXiang Li; CHECK-LABEL: @test_thread_id_in_group( 2743dc3190SXiang Li; Function Attrs: noinline nounwind optnone 2843dc3190SXiang Lidefine i32 @test_thread_id_in_group(i32 %a) #0 { 2943dc3190SXiang Lientry: 30*011b6186SFinn Plummer; CHECK: call i32 @dx.op.threadIdInGroup.i32(i32 95, i32 %{{.*}}) #[[#ATTR]] 31e0b52086SChris Bieneman %0 = call i32 @llvm.dx.thread.id.in.group(i32 %a) 3243dc3190SXiang Li ret i32 %0 3343dc3190SXiang Li} 3443dc3190SXiang Li 35a9c875b1SXiang Li; CHECK-LABEL: @test_flattened_thread_id_in_group( 3643dc3190SXiang Li; Function Attrs: noinline nounwind optnone 3743dc3190SXiang Lidefine i32 @test_flattened_thread_id_in_group() #0 { 3843dc3190SXiang Lientry: 39*011b6186SFinn Plummer; CHECK: call i32 @dx.op.flattenedThreadIdInGroup.i32(i32 96) #[[#ATTR]] 40e0b52086SChris Bieneman %0 = call i32 @llvm.dx.flattened.thread.id.in.group() 4143dc3190SXiang Li ret i32 %0 4243dc3190SXiang Li} 4343dc3190SXiang Li 44*011b6186SFinn Plummer; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}} 45*011b6186SFinn Plummer 4643dc3190SXiang Li; Function Attrs: nounwind readnone willreturn 47e0b52086SChris Bienemandeclare i32 @llvm.dx.thread.id(i32) #1 48e0b52086SChris Bienemandeclare i32 @llvm.dx.group.id(i32) #1 49e0b52086SChris Bienemandeclare i32 @llvm.dx.flattened.thread.id.in.group() #1 50e0b52086SChris Bienemandeclare i32 @llvm.dx.thread.id.in.group(i32) #1 5143dc3190SXiang Li 5243dc3190SXiang Liattributes #0 = { noinline nounwind } 5343dc3190SXiang Liattributes #1 = { nounwind readnone willreturn } 54