[PATCH] D141348: [X86][CodeGen]Fix extract f16 from big vectors
Phoebe Wang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 9 22:47:17 PST 2023
pengfei added inline comments.
================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:34125
+ case ISD::EXTRACT_VECTOR_ELT: {
+ // f16 = extract vxxf16 %vec, i64 %idx
+ MVT SplitVT = N->getSimpleValueType(0);
----------------
We usually use `vNf16`
================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:34126-34128
+ MVT SplitVT = N->getSimpleValueType(0);
+ assert(SplitVT == MVT::f16 &&
+ "Unexpected Value type of EXTRACT_VECTOR_ELT!");
----------------
Try to avoid defining variable used by assert only. Compiler may report used variable when do releast build.
================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:34131-34132
+ SDValue VecOp = N->getOperand(0);
+ MVT ExtVT =
+ MVT::getVectorVT(MVT::i16, VecOp.getValueType().getVectorNumElements());
+ SDValue Split = DAG.getBitcast(ExtVT, N->getOperand(0));
----------------
You can use `changeVectorElementTypeToInteger`.
================
Comment at: llvm/test/CodeGen/X86/avx512fp16-mov.ll:1352
+define half @extract_f16_8(<32 x half> %x, i64 %idx) {
+; X64-LABEL: extract_f16_8:
----------------
Add `nounwind`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141348/new/
https://reviews.llvm.org/D141348
More information about the llvm-commits
mailing list