This adds a set of initial tests that check that some of the matrix
types extension matches the spec.
Details
Diff Detail
- Repository
- rOLDT svn-test-suite
- Build Status
Buildable 56786 Build 66587: arc lint + arc unit
Event Timeline
ping. This is an initial step towards adding end-to-end tests for the matrix types extensions. Subsequently I am also planning on contributing some (micro) benchmarks.
Submitted as https://github.com/llvm/llvm-test-suite/commit/60cfbf7833b8039b938ce679bed89c738b519e1d
It looks like Phab doesn't auto-close test-suite patches.
Hi
@fhahn I ran into an llvm_unreachable when building matrix-types-spec.cpp as part of an llvm-test-suite build using -Oz with -flto=thin. I reduced the IR that hit the unreachable to:
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64-unknown-linux-gnu" define void @f(double* %Res) { tail call void @llvm.matrix.column.major.store.v275f64(<275 x double> undef, double* align 8 %Res, i64 25, i1 false, i32 25, i32 11) ret void } declare void @llvm.matrix.column.major.store.v275f64(<275 x double>, double* nocapture writeonly, i64, i1 immarg, i32 immarg, i32 immarg)
Repros through llc. Also repro'ed it on godbolt too: https://godbolt.org/z/rrGecn
The unreachable is in llvm::DAGTypeLegalizer::WidenVectorOperand.
Hope this is helpful.
-PL
Thanks for letting me know! Unfortunately the lowering pass is not enabled by default and there's no convenient way to pass the -enable-matrix flag through LTO. I hope to fix that soonish, but I'll check if it is easy to disable the test for LTO for now.