@@ -1191,7 +1191,7 @@ def int_amdgcn_ds_bpermute :
1191
1191
// Deep learning intrinsics.
1192
1192
//===----------------------------------------------------------------------===//
1193
1193
1194
- // f32 %r = llvm.amdgcn.fdot2(v2f16 %a, v2f16 %b, f32 %c)
1194
+ // f32 %r = llvm.amdgcn.fdot2(v2f16 %a, v2f16 %b, f32 %c, i1 %clamp )
1195
1195
// %r = %a[0] * %b[0] + %a[1] * %b[1] + %c
1196
1196
def int_amdgcn_fdot2 :
1197
1197
GCCBuiltin<"__builtin_amdgcn_fdot2">,
@@ -1200,12 +1200,13 @@ def int_amdgcn_fdot2 :
1200
1200
[
1201
1201
llvm_v2f16_ty, // %a
1202
1202
llvm_v2f16_ty, // %b
1203
- llvm_float_ty // %c
1203
+ llvm_float_ty, // %c
1204
+ llvm_i1_ty // %clamp
1204
1205
],
1205
1206
[IntrNoMem, IntrSpeculatable]
1206
1207
>;
1207
1208
1208
- // i32 %r = llvm.amdgcn.sdot2(v2i16 %a, v2i16 %b, i32 %c)
1209
+ // i32 %r = llvm.amdgcn.sdot2(v2i16 %a, v2i16 %b, i32 %c, i1 %clamp )
1209
1210
// %r = %a[0] * %b[0] + %a[1] * %b[1] + %c
1210
1211
def int_amdgcn_sdot2 :
1211
1212
GCCBuiltin<"__builtin_amdgcn_sdot2">,
@@ -1214,12 +1215,13 @@ def int_amdgcn_sdot2 :
1214
1215
[
1215
1216
llvm_v2i16_ty, // %a
1216
1217
llvm_v2i16_ty, // %b
1217
- llvm_i32_ty // %c
1218
+ llvm_i32_ty, // %c
1219
+ llvm_i1_ty // %clamp
1218
1220
],
1219
1221
[IntrNoMem, IntrSpeculatable]
1220
1222
>;
1221
1223
1222
- // u32 %r = llvm.amdgcn.udot2(v2u16 %a, v2u16 %b, u32 %c)
1224
+ // u32 %r = llvm.amdgcn.udot2(v2u16 %a, v2u16 %b, u32 %c, i1 %clamp )
1223
1225
// %r = %a[0] * %b[0] + %a[1] * %b[1] + %c
1224
1226
def int_amdgcn_udot2 :
1225
1227
GCCBuiltin<"__builtin_amdgcn_udot2">,
@@ -1228,12 +1230,13 @@ def int_amdgcn_udot2 :
1228
1230
[
1229
1231
llvm_v2i16_ty, // %a
1230
1232
llvm_v2i16_ty, // %b
1231
- llvm_i32_ty // %c
1233
+ llvm_i32_ty, // %c
1234
+ llvm_i1_ty // %clamp
1232
1235
],
1233
1236
[IntrNoMem, IntrSpeculatable]
1234
1237
>;
1235
1238
1236
- // i32 %r = llvm.amdgcn.sdot4(v4i8 (as i32) %a, v4i8 (as i32) %b, i32 %c)
1239
+ // i32 %r = llvm.amdgcn.sdot4(v4i8 (as i32) %a, v4i8 (as i32) %b, i32 %c, i1 %clamp )
1237
1240
// %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] + %c
1238
1241
def int_amdgcn_sdot4 :
1239
1242
GCCBuiltin<"__builtin_amdgcn_sdot4">,
@@ -1242,12 +1245,13 @@ def int_amdgcn_sdot4 :
1242
1245
[
1243
1246
llvm_i32_ty, // %a
1244
1247
llvm_i32_ty, // %b
1245
- llvm_i32_ty // %c
1248
+ llvm_i32_ty, // %c
1249
+ llvm_i1_ty // %clamp
1246
1250
],
1247
1251
[IntrNoMem, IntrSpeculatable]
1248
1252
>;
1249
1253
1250
- // u32 %r = llvm.amdgcn.udot4(v4u8 (as u32) %a, v4u8 (as u32) %b, u32 %c)
1254
+ // u32 %r = llvm.amdgcn.udot4(v4u8 (as u32) %a, v4u8 (as u32) %b, u32 %c, i1 %clamp )
1251
1255
// %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] + %c
1252
1256
def int_amdgcn_udot4 :
1253
1257
GCCBuiltin<"__builtin_amdgcn_udot4">,
@@ -1256,12 +1260,13 @@ def int_amdgcn_udot4 :
1256
1260
[
1257
1261
llvm_i32_ty, // %a
1258
1262
llvm_i32_ty, // %b
1259
- llvm_i32_ty // %c
1263
+ llvm_i32_ty, // %c
1264
+ llvm_i1_ty // %clamp
1260
1265
],
1261
1266
[IntrNoMem, IntrSpeculatable]
1262
1267
>;
1263
1268
1264
- // i32 %r = llvm.amdgcn.sdot8(v8i4 (as i32) %a, v8i4 (as i32) %b, i32 %c)
1269
+ // i32 %r = llvm.amdgcn.sdot8(v8i4 (as i32) %a, v8i4 (as i32) %b, i32 %c, i1 %clamp )
1265
1270
// %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] +
1266
1271
// %a[4] * %b[4] + %a[5] * %b[5] + %a[6] * %b[6] + %a[7] * %b[7] + %c
1267
1272
def int_amdgcn_sdot8 :
@@ -1271,12 +1276,13 @@ def int_amdgcn_sdot8 :
1271
1276
[
1272
1277
llvm_i32_ty, // %a
1273
1278
llvm_i32_ty, // %b
1274
- llvm_i32_ty // %c
1279
+ llvm_i32_ty, // %c
1280
+ llvm_i1_ty // %clamp
1275
1281
],
1276
1282
[IntrNoMem, IntrSpeculatable]
1277
1283
>;
1278
1284
1279
- // u32 %r = llvm.amdgcn.udot8(v8u4 (as u32) %a, v8u4 (as u32) %b, u32 %c)
1285
+ // u32 %r = llvm.amdgcn.udot8(v8u4 (as u32) %a, v8u4 (as u32) %b, u32 %c, i1 %clamp )
1280
1286
// %r = %a[0] * %b[0] + %a[1] * %b[1] + %a[2] * %b[2] + %a[3] * %b[3] +
1281
1287
// %a[4] * %b[4] + %a[5] * %b[5] + %a[6] * %b[6] + %a[7] * %b[7] + %c
1282
1288
def int_amdgcn_udot8 :
@@ -1286,7 +1292,8 @@ def int_amdgcn_udot8 :
1286
1292
[
1287
1293
llvm_i32_ty, // %a
1288
1294
llvm_i32_ty, // %b
1289
- llvm_i32_ty // %c
1295
+ llvm_i32_ty, // %c
1296
+ llvm_i1_ty // %clamp
1290
1297
],
1291
1298
[IntrNoMem, IntrSpeculatable]
1292
1299
>;
0 commit comments