@@ -1664,31 +1664,31 @@ int bar(int n){
1664
1664
// CHECK1-NEXT: store i32* [[A]], i32** [[A_ADDR]], align 8
1665
1665
// CHECK1-NEXT: [[TMP0:%.*]] = load i32*, i32** [[A_ADDR]], align 8
1666
1666
// CHECK1-NEXT: [[TMP1:%.*]] = call i64 @__kmpc_warp_active_thread_mask()
1667
- // CHECK1-NEXT: [[NVPTX_TID :%.*]] = call i32 @llvm.nvvm.read.ptx.sreg.tid.x ()
1667
+ // CHECK1-NEXT: [[TMP2 :%.*]] = call i32 @__kmpc_get_hardware_thread_id_in_block ()
1668
1668
// CHECK1-NEXT: [[NVPTX_NUM_THREADS:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block()
1669
1669
// CHECK1-NEXT: store i32 0, i32* [[CRITICAL_COUNTER]], align 4
1670
1670
// CHECK1-NEXT: br label [[OMP_CRITICAL_LOOP:%.*]]
1671
1671
// CHECK1: omp.critical.loop:
1672
- // CHECK1-NEXT: [[TMP2 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1673
- // CHECK1-NEXT: [[TMP3 :%.*]] = icmp slt i32 [[TMP2 ]], [[NVPTX_NUM_THREADS]]
1674
- // CHECK1-NEXT: br i1 [[TMP3 ]], label [[OMP_CRITICAL_TEST:%.*]], label [[OMP_CRITICAL_EXIT:%.*]]
1672
+ // CHECK1-NEXT: [[TMP3 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1673
+ // CHECK1-NEXT: [[TMP4 :%.*]] = icmp slt i32 [[TMP3 ]], [[NVPTX_NUM_THREADS]]
1674
+ // CHECK1-NEXT: br i1 [[TMP4 ]], label [[OMP_CRITICAL_TEST:%.*]], label [[OMP_CRITICAL_EXIT:%.*]]
1675
1675
// CHECK1: omp.critical.test:
1676
- // CHECK1-NEXT: [[TMP4 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1677
- // CHECK1-NEXT: [[TMP5 :%.*]] = icmp eq i32 [[NVPTX_TID ]], [[TMP4 ]]
1678
- // CHECK1-NEXT: br i1 [[TMP5 ]], label [[OMP_CRITICAL_BODY:%.*]], label [[OMP_CRITICAL_SYNC:%.*]]
1676
+ // CHECK1-NEXT: [[TMP5 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1677
+ // CHECK1-NEXT: [[TMP6 :%.*]] = icmp eq i32 [[TMP2 ]], [[TMP5 ]]
1678
+ // CHECK1-NEXT: br i1 [[TMP6 ]], label [[OMP_CRITICAL_BODY:%.*]], label [[OMP_CRITICAL_SYNC:%.*]]
1679
1679
// CHECK1: omp.critical.body:
1680
- // CHECK1-NEXT: [[TMP6 :%.*]] = load i32*, i32** [[DOTGLOBAL_TID__ADDR]], align 8
1681
- // CHECK1-NEXT: [[TMP7 :%.*]] = load i32, i32* [[TMP6 ]], align 4
1682
- // CHECK1-NEXT: call void @__kmpc_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP7 ]], [8 x i32]* @"_gomp_critical_user_$var")
1683
- // CHECK1-NEXT: [[TMP8 :%.*]] = load i32, i32* [[TMP0]], align 4
1684
- // CHECK1-NEXT: [[INC:%.*]] = add nsw i32 [[TMP8 ]], 1
1680
+ // CHECK1-NEXT: [[TMP7 :%.*]] = load i32*, i32** [[DOTGLOBAL_TID__ADDR]], align 8
1681
+ // CHECK1-NEXT: [[TMP8 :%.*]] = load i32, i32* [[TMP7 ]], align 4
1682
+ // CHECK1-NEXT: call void @__kmpc_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP8 ]], [8 x i32]* @"_gomp_critical_user_$var")
1683
+ // CHECK1-NEXT: [[TMP9 :%.*]] = load i32, i32* [[TMP0]], align 4
1684
+ // CHECK1-NEXT: [[INC:%.*]] = add nsw i32 [[TMP9 ]], 1
1685
1685
// CHECK1-NEXT: store i32 [[INC]], i32* [[TMP0]], align 4
1686
- // CHECK1-NEXT: call void @__kmpc_end_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP7 ]], [8 x i32]* @"_gomp_critical_user_$var")
1686
+ // CHECK1-NEXT: call void @__kmpc_end_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP8 ]], [8 x i32]* @"_gomp_critical_user_$var")
1687
1687
// CHECK1-NEXT: br label [[OMP_CRITICAL_SYNC]]
1688
1688
// CHECK1: omp.critical.sync:
1689
1689
// CHECK1-NEXT: call void @__kmpc_syncwarp(i64 [[TMP1]])
1690
- // CHECK1-NEXT: [[TMP9 :%.*]] = add nsw i32 [[TMP4 ]], 1
1691
- // CHECK1-NEXT: store i32 [[TMP9 ]], i32* [[CRITICAL_COUNTER]], align 4
1690
+ // CHECK1-NEXT: [[TMP10 :%.*]] = add nsw i32 [[TMP5 ]], 1
1691
+ // CHECK1-NEXT: store i32 [[TMP10 ]], i32* [[CRITICAL_COUNTER]], align 4
1692
1692
// CHECK1-NEXT: br label [[OMP_CRITICAL_LOOP]]
1693
1693
// CHECK1: omp.critical.exit:
1694
1694
// CHECK1-NEXT: ret void
@@ -1936,31 +1936,31 @@ int bar(int n){
1936
1936
// CHECK2-NEXT: store i32* [[A]], i32** [[A_ADDR]], align 4
1937
1937
// CHECK2-NEXT: [[TMP0:%.*]] = load i32*, i32** [[A_ADDR]], align 4
1938
1938
// CHECK2-NEXT: [[TMP1:%.*]] = call i64 @__kmpc_warp_active_thread_mask()
1939
- // CHECK2-NEXT: [[NVPTX_TID :%.*]] = call i32 @llvm.nvvm.read.ptx.sreg.tid.x ()
1939
+ // CHECK2-NEXT: [[TMP2 :%.*]] = call i32 @__kmpc_get_hardware_thread_id_in_block ()
1940
1940
// CHECK2-NEXT: [[NVPTX_NUM_THREADS:%.*]] = call i32 @__kmpc_get_hardware_num_threads_in_block()
1941
1941
// CHECK2-NEXT: store i32 0, i32* [[CRITICAL_COUNTER]], align 4
1942
1942
// CHECK2-NEXT: br label [[OMP_CRITICAL_LOOP:%.*]]
1943
1943
// CHECK2: omp.critical.loop:
1944
- // CHECK2-NEXT: [[TMP2 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1945
- // CHECK2-NEXT: [[TMP3 :%.*]] = icmp slt i32 [[TMP2 ]], [[NVPTX_NUM_THREADS]]
1946
- // CHECK2-NEXT: br i1 [[TMP3 ]], label [[OMP_CRITICAL_TEST:%.*]], label [[OMP_CRITICAL_EXIT:%.*]]
1944
+ // CHECK2-NEXT: [[TMP3 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1945
+ // CHECK2-NEXT: [[TMP4 :%.*]] = icmp slt i32 [[TMP3 ]], [[NVPTX_NUM_THREADS]]
1946
+ // CHECK2-NEXT: br i1 [[TMP4 ]], label [[OMP_CRITICAL_TEST:%.*]], label [[OMP_CRITICAL_EXIT:%.*]]
1947
1947
// CHECK2: omp.critical.test:
1948
- // CHECK2-NEXT: [[TMP4 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1949
- // CHECK2-NEXT: [[TMP5 :%.*]] = icmp eq i32 [[NVPTX_TID ]], [[TMP4 ]]
1950
- // CHECK2-NEXT: br i1 [[TMP5 ]], label [[OMP_CRITICAL_BODY:%.*]], label [[OMP_CRITICAL_SYNC:%.*]]
1948
+ // CHECK2-NEXT: [[TMP5 :%.*]] = load i32, i32* [[CRITICAL_COUNTER]], align 4
1949
+ // CHECK2-NEXT: [[TMP6 :%.*]] = icmp eq i32 [[TMP2 ]], [[TMP5 ]]
1950
+ // CHECK2-NEXT: br i1 [[TMP6 ]], label [[OMP_CRITICAL_BODY:%.*]], label [[OMP_CRITICAL_SYNC:%.*]]
1951
1951
// CHECK2: omp.critical.body:
1952
- // CHECK2-NEXT: [[TMP6 :%.*]] = load i32*, i32** [[DOTGLOBAL_TID__ADDR]], align 4
1953
- // CHECK2-NEXT: [[TMP7 :%.*]] = load i32, i32* [[TMP6 ]], align 4
1954
- // CHECK2-NEXT: call void @__kmpc_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP7 ]], [8 x i32]* @"_gomp_critical_user_$var")
1955
- // CHECK2-NEXT: [[TMP8 :%.*]] = load i32, i32* [[TMP0]], align 4
1956
- // CHECK2-NEXT: [[INC:%.*]] = add nsw i32 [[TMP8 ]], 1
1952
+ // CHECK2-NEXT: [[TMP7 :%.*]] = load i32*, i32** [[DOTGLOBAL_TID__ADDR]], align 4
1953
+ // CHECK2-NEXT: [[TMP8 :%.*]] = load i32, i32* [[TMP7 ]], align 4
1954
+ // CHECK2-NEXT: call void @__kmpc_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP8 ]], [8 x i32]* @"_gomp_critical_user_$var")
1955
+ // CHECK2-NEXT: [[TMP9 :%.*]] = load i32, i32* [[TMP0]], align 4
1956
+ // CHECK2-NEXT: [[INC:%.*]] = add nsw i32 [[TMP9 ]], 1
1957
1957
// CHECK2-NEXT: store i32 [[INC]], i32* [[TMP0]], align 4
1958
- // CHECK2-NEXT: call void @__kmpc_end_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP7 ]], [8 x i32]* @"_gomp_critical_user_$var")
1958
+ // CHECK2-NEXT: call void @__kmpc_end_critical(%struct.ident_t* @[[GLOB1]], i32 [[TMP8 ]], [8 x i32]* @"_gomp_critical_user_$var")
1959
1959
// CHECK2-NEXT: br label [[OMP_CRITICAL_SYNC]]
1960
1960
// CHECK2: omp.critical.sync:
1961
1961
// CHECK2-NEXT: call void @__kmpc_syncwarp(i64 [[TMP1]])
1962
- // CHECK2-NEXT: [[TMP9 :%.*]] = add nsw i32 [[TMP4 ]], 1
1963
- // CHECK2-NEXT: store i32 [[TMP9 ]], i32* [[CRITICAL_COUNTER]], align 4
1962
+ // CHECK2-NEXT: [[TMP10 :%.*]] = add nsw i32 [[TMP5 ]], 1
1963
+ // CHECK2-NEXT: store i32 [[TMP10 ]], i32* [[CRITICAL_COUNTER]], align 4
1964
1964
// CHECK2-NEXT: br label [[OMP_CRITICAL_LOOP]]
1965
1965
// CHECK2: omp.critical.exit:
1966
1966
// CHECK2-NEXT: ret void
0 commit comments