Skip to content

Commit d849cbc

Browse files
Fix error: enumeration value 'OperandC' not handled in switch (#3253)
When building with clang 14, the following warning, that is treated as error, occurs: enumeration value 'OperandC' not handled in switch [-Werror,-Wswitch] Fixes #3258
1 parent 1e3e5eb commit d849cbc

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

third_party/intel/lib/Dialect/TritonIntelGPU/IR/Dialect.cpp

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -245,18 +245,21 @@ DpasEncodingAttr::getDPASRepetitions(ArrayRef<int64_t> shape,
245245
std::max<int64_t>(1, shape[rank - 1] / (shapePerWarp[rank - 1] *
246246
warpsPerCTA[rank - 1]))};
247247
} break;
248+
case OpIdx::OperandC: {
249+
auto shapePerWarp = getShapeC();
250+
int64_t numRepBatch =
251+
rank == 3 ? std::max<int64_t>(1, shape[0] /
252+
(shapePerWarp[0] * warpsPerCTA[0]))
253+
: 1;
254+
return {numRepBatch,
255+
std::max<int64_t>(1, shape[rank - 2] / (shapePerWarp[rank - 2] *
256+
warpsPerCTA[rank - 2])),
257+
std::max<int64_t>(1, shape[rank - 1] / (shapePerWarp[rank - 1] *
258+
warpsPerCTA[rank - 1]))};
259+
} break;
248260
}
249261

250-
auto shapePerWarp = getShapeC();
251-
int64_t numRepBatch =
252-
rank == 3
253-
? std::max<int64_t>(1, shape[0] / (shapePerWarp[0] * warpsPerCTA[0]))
254-
: 1;
255-
return {numRepBatch,
256-
std::max<int64_t>(1, shape[rank - 2] / (shapePerWarp[rank - 2] *
257-
warpsPerCTA[rank - 2])),
258-
std::max<int64_t>(1, shape[rank - 1] / (shapePerWarp[rank - 1] *
259-
warpsPerCTA[rank - 1]))};
262+
llvm_unreachable("unexpected opIdx");
260263
}
261264

262265
unsigned DpasEncodingAttr::getTotalElemsPerThreadForOperand(
@@ -279,6 +282,9 @@ unsigned DpasEncodingAttr::getTotalElemsPerThreadForOperand(
279282
// dpas operands scalar are evenly sharded to each work item.
280283
return (totalElem / threadsPerWar) * product<int64_t>(rep);
281284
} break;
285+
case OpIdx::OperandC: {
286+
llvm_unreachable("unexpected OpIdx::OperandC");
287+
} break;
282288
}
283289
llvm_unreachable("unexpected opIdx");
284290
}
@@ -350,6 +356,9 @@ DpasEncodingAttr::getSizePerThreadForOperand(int kWidth, OpIdx opIdx) const {
350356
return {shapeB[rank - 2] / threadsPerWarp[0],
351357
shapeB[rank - 1] / threadsPerWarp[1] * repCluster[rank - 1]};
352358
} break;
359+
case OpIdx::OperandC: {
360+
llvm_unreachable("unexpected OpIdx::OperandC");
361+
} break;
353362
}
354363
llvm_unreachable("unexpected opIdx");
355364
}

third_party/intel/lib/TritonIntelGPUToLLVM/ConvertLayoutOpToLLVM.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,9 @@ struct ConvertLayoutOpConversion
397397
repInner = repetitions[1];
398398
repClusterOuter = repCluster[rank - 1];
399399
} break;
400+
case DpasEncodingAttr::OpIdx::OperandC: {
401+
llvm_unreachable("unexpected OpIdx::OperandC");
402+
} break;
400403
}
401404

402405
// TODO: Operands B requires extra steps to combine [8, 16] to [16, 16].

third_party/intel/lib/TritonIntelGPUToLLVM/LoadStoreOpToLLVM.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,9 @@ struct LoadOpConversion
861861
i32_val(outer * repOuterStride + rep * repStride));
862862
offsetY = i32_val(k * repKStride);
863863
} break;
864+
case DpasEncodingAttr::OpIdx::OperandC: {
865+
llvm_unreachable("unexpected OpIdx::OperandC");
866+
} break;
864867
}
865868

866869
offsetX = add(offsetX, offsetBaseX);
@@ -942,6 +945,9 @@ struct LoadOpConversion
942945
k + row}] =
943946
bitcast(loadVal, unpackedDPASOperandType);
944947
} break;
948+
case DpasEncodingAttr::OpIdx::OperandC: {
949+
llvm_unreachable("unexpected OpIdx::OperandC");
950+
} break;
945951
}
946952
}
947953
}

0 commit comments

Comments
 (0)