LuoYuanke added a comment. In D87981#2406530 <https://reviews.llvm.org/D87981#2406530>, @craig.topper wrote:
> This triggers an assertion in X86LowerAMXType::visit() when compiled with > clang test.c -O3 > > typedef int vec1024 __attribute__((vector_size(1024))); > > vec1024 foo(vec1024 x, vec1024 y) { > return x + y; > } > > > > While deleting: <256 x i32> %x > Use still stuck around after Def is destroyed: %add = add <256 x i32> %y, > %x > clang-12: llvm/lib/IR/Value.cpp:100: llvm::Value::~Value(): Assertion > `materialized_use_empty() && "Uses remain when a value is destroyed!"' failed. Thank Craig. This case create an instruction "%add = add <256 x i32> %y, %x" which is not covered by the type lowering. So we need do something similar of type legalization for <256 x i32> to split the type. Do you have any suggestion? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87981/new/ https://reviews.llvm.org/D87981 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits