Skip to content

Commit cced9a9

Browse files
NikitaRudenkoIntelKonstantin Vladimirov
authored and
Konstantin Vladimirov
committed
Rename _MessTy to _IntRetTy in lsc atomics
Rename _MessTy to _IntRetTy in lsc atomics
1 parent f9b06df commit cced9a9

File tree

1 file changed

+55
-34
lines changed

1 file changed

+55
-34
lines changed

clang/lib/Headers/cm/include/cm/cm_lsc.h

Lines changed: 55 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,12 +1112,12 @@ CM_NODEBUG CM_INLINE auto cm_atomic(SurfaceIndex Idx,
11121112
"unsupported cache hint");
11131113
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
11141114
constexpr bool _Transposed = false;
1115-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1115+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
11161116
using _RetTy = decltype(lsc_data_type<T, N, VS>());
11171117
auto _TmpRes =
11181118
__cm_intrinsic_impl_lsc_atomic_bti<Op, _DS, VS, _Transposed, L1H, L3H,
1119-
_MessTy, N>(Pred, Idx, Offset);
1120-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1119+
_IntRetTy, N>(Pred, Idx, Offset);
1120+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
11211121
}
11221122

11231123
template <AtomicOp Op, typename T, VectorSize VS = VectorSize::N1,
@@ -1138,12 +1138,15 @@ cm_atomic(SurfaceIndex Idx, vector<unsigned, N> Offset,
11381138
"unsupported cache hint");
11391139
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
11401140
constexpr bool _Transposed = false;
1141-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1141+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
1142+
using _SrcTy = decltype(lsc_data_type_ext<T, N, VS>());
1143+
using _CastTy = typename lsc_bitcast_type<T>::type;
11421144
using _RetTy = decltype(lsc_data_type<T, N, VS>());
1143-
auto _TmpRes =
1144-
__cm_intrinsic_impl_lsc_atomic_bti<Op, _DS, VS, _Transposed, L1H, L3H,
1145-
_MessTy, N>(Pred, Idx, Offset, Src0);
1146-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1145+
_SrcTy _TmpSrc0 = Src0.format<_CastTy>();
1146+
auto _TmpRes = __cm_intrinsic_impl_lsc_atomic_bti<Op, _DS, VS, _Transposed,
1147+
L1H, L3H, _IntRetTy, N>(
1148+
Pred, Idx, Offset, _TmpSrc0);
1149+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
11471150
}
11481151

11491152
template <AtomicOp Op, typename T, VectorSize VS = VectorSize::N1,
@@ -1164,13 +1167,17 @@ cm_atomic(SurfaceIndex Idx, vector<unsigned, N> Offset,
11641167
CM_STATIC_ERROR((lsc_check_cache_hint<LSCAction::Atomic, L1H, L3H>()),
11651168
"unsupported cache hint");
11661169
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
1167-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1170+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
1171+
using _SrcTy = decltype(lsc_data_type_ext<T, N, VS>());
11681172
using _RetTy = decltype(lsc_data_type<T, N, VS>());
1173+
using _CastTy = typename lsc_bitcast_type<T>::type;
1174+
_SrcTy _TmpSrc0 = Src0.format<_CastTy>();
1175+
_SrcTy _TmpSrc1 = Src1.format<_CastTy>();
11691176
constexpr bool _Transposed = false;
11701177
auto _TmpRes = __cm_intrinsic_impl_lsc_atomic_bti<Op, _DS, VS, _Transposed,
1171-
L1H, L3H, _MessTy, N>(
1172-
Pred, Idx, Offset, Src0, Src1);
1173-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1178+
L1H, L3H, _IntRetTy, N>(
1179+
Pred, Idx, Offset, _TmpSrc0, _TmpSrc1);
1180+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
11741181
}
11751182

11761183
// flat-address atomic
@@ -1192,12 +1199,12 @@ CM_NODEBUG CM_INLINE auto cm_ptr_atomic(T *Ptr, vector<unsigned, N> Offset,
11921199
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
11931200
constexpr bool _Transposed = false;
11941201
uint64_t _Addr = (uint64_t)Ptr;
1195-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1202+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
11961203
using _RetTy = decltype(lsc_data_type<T, N, VS>());
11971204
auto _TmpRes =
11981205
__cm_intrinsic_impl_lsc_atomic_flat<Op, _DS, VS, _Transposed, L1H, L3H,
1199-
_MessTy, N>(Pred, _Addr, Offset);
1200-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1206+
_IntRetTy, N>(Pred, _Addr, Offset);
1207+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
12011208
}
12021209

12031210
template <AtomicOp Op, typename T, VectorSize VS = VectorSize::N1,
@@ -1219,12 +1226,15 @@ cm_ptr_atomic(T *Ptr, vector<unsigned, N> Offset,
12191226
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
12201227
constexpr bool _Transposed = false;
12211228
uint64_t _Addr = (uint64_t)Ptr;
1222-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1229+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
1230+
using _SrcTy = decltype(lsc_data_type_ext<T, N, VS>());
12231231
using _RetTy = decltype(lsc_data_type<T, N, VS>());
1232+
using _CastTy = typename lsc_bitcast_type<T>::type;
1233+
_SrcTy _TmpSrc0 = Src0.format<_CastTy>();
12241234
auto _TmpRes = __cm_intrinsic_impl_lsc_atomic_flat<Op, _DS, VS, _Transposed,
1225-
L1H, L3H, _MessTy, N>(
1226-
Pred, _Addr, Offset, Src0);
1227-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1235+
L1H, L3H, _IntRetTy, N>(
1236+
Pred, _Addr, Offset, _TmpSrc0);
1237+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
12281238
}
12291239

12301240
template <AtomicOp Op, typename T, VectorSize VS = VectorSize::N1,
@@ -1245,14 +1255,18 @@ cm_ptr_atomic(T *Ptr, vector<unsigned, N> Offset,
12451255
CM_STATIC_ERROR((lsc_check_cache_hint<LSCAction::Atomic, L1H, L3H>()),
12461256
"unsupported cache hint");
12471257
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
1248-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1258+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
1259+
using _SrcTy = decltype(lsc_data_type_ext<T, N, VS>());
12491260
using _RetTy = decltype(lsc_data_type<T, N, VS>());
1261+
using _CastTy = typename lsc_bitcast_type<T>::type;
1262+
_SrcTy _TmpSrc0 = Src0.format<_CastTy>();
1263+
_SrcTy _TmpSrc1 = Src1.format<_CastTy>();
12501264
constexpr bool _Transposed = false;
12511265
uint64_t _Addr = (uint64_t)Ptr;
12521266
auto _TmpRes = __cm_intrinsic_impl_lsc_atomic_flat<Op, _DS, VS, _Transposed,
1253-
L1H, L3H, _MessTy, N>(
1254-
Pred, _Addr, Offset, Src0, Src1);
1255-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1267+
L1H, L3H, _IntRetTy, N>(
1268+
Pred, _Addr, Offset, _TmpSrc0, _TmpSrc1);
1269+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
12561270
}
12571271

12581272
// bindless-address atomic
@@ -1298,12 +1312,12 @@ CM_NODEBUG CM_INLINE auto cm_atomic_slm(vector<unsigned, N> Offset,
12981312
"unsupported cache hint");
12991313
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
13001314
constexpr bool _Transposed = false;
1301-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1315+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
13021316
using _RetTy = decltype(lsc_data_type<T, N, VS>());
13031317
auto _TmpRes =
13041318
__cm_intrinsic_impl_lsc_atomic_slm<Op, _DS, VS, _Transposed, L1H, L3H,
1305-
_MessTy, N>(Pred, Offset);
1306-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1319+
_IntRetTy, N>(Pred, Offset);
1320+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
13071321
}
13081322

13091323
template <AtomicOp Op, typename T, VectorSize VS = VectorSize::N1,
@@ -1324,12 +1338,15 @@ cm_atomic_slm(vector<unsigned, N> Offset,
13241338
"unsupported cache hint");
13251339
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
13261340
constexpr bool _Transposed = false;
1327-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1341+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
1342+
using _SrcTy = decltype(lsc_data_type_ext<T, N, VS>());
13281343
using _RetTy = decltype(lsc_data_type<T, N, VS>());
1344+
using _CastTy = typename lsc_bitcast_type<T>::type;
1345+
_SrcTy _TmpSrc0 = Src0.format<_CastTy>();
13291346
auto _TmpRes =
13301347
__cm_intrinsic_impl_lsc_atomic_slm<Op, _DS, VS, _Transposed, L1H, L3H,
1331-
_MessTy, N>(Pred, Offset, Src0);
1332-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1348+
_IntRetTy, N>(Pred, Offset, _TmpSrc0);
1349+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
13331350
}
13341351

13351352
template <AtomicOp Op, typename T, VectorSize VS = VectorSize::N1,
@@ -1350,13 +1367,17 @@ cm_atomic_slm(vector<unsigned, N> Offset,
13501367
CM_STATIC_ERROR((lsc_check_cache_hint<LSCAction::Atomic, L1H, L3H>()),
13511368
"unsupported cache hint");
13521369
constexpr DataSize _DS = lsc_expand_ds(lsc_data_size<T, DS>());
1353-
using _MessTy = decltype(lsc_data_type_ext<T, N, VS>());
1370+
using _IntRetTy = decltype(lsc_data_type_ext<T, N, VS>());
1371+
using _SrcTy = decltype(lsc_data_type_ext<T, N, VS>());
13541372
using _RetTy = decltype(lsc_data_type<T, N, VS>());
1373+
using _CastTy = typename lsc_bitcast_type<T>::type;
1374+
_SrcTy _TmpSrc0 = Src0.format<_CastTy>();
1375+
_SrcTy _TmpSrc1 = Src1.format<_CastTy>();
13551376
constexpr bool _Transposed = false;
1356-
auto _TmpRes =
1357-
__cm_intrinsic_impl_lsc_atomic_slm<Op, _DS, VS, _Transposed, L1H, L3H,
1358-
_MessTy, N>(Pred, Offset, Src0, Src1);
1359-
return lsc_format_ret<T, _MessTy, _RetTy>(_TmpRes);
1377+
auto _TmpRes = __cm_intrinsic_impl_lsc_atomic_slm<Op, _DS, VS, _Transposed,
1378+
L1H, L3H, _IntRetTy, N>(
1379+
Pred, Offset, _TmpSrc0, _TmpSrc1);
1380+
return lsc_format_ret<T, _IntRetTy, _RetTy>(_TmpRes);
13601381
}
13611382

13621383
///

0 commit comments

Comments
 (0)