[AArch64][SME] Fix an infinite loop in DAGCombine related to adding -force-streaming...
authorDinar Temirbulatov <dinar.temirbulatov@arm.com>
Wed, 5 Apr 2023 10:10:55 +0000 (10:10 +0000)
committerDinar Temirbulatov <dinar.temirbulatov@arm.com>
Wed, 5 Apr 2023 10:10:55 +0000 (10:10 +0000)
commit7f05bdf4ee1c4a6779ecde1e44a889c4cef72269
treec460425d7e40c789a11b9aaaf9dda16eabd1b985
parenta3aa916d019c8deb10c750acecdef650b3365f22
[AArch64][SME] Fix an infinite loop in DAGCombine related to adding -force-streaming-compatible-sve flag.

Compiler hits infinite loop in DAGCombine. For force-streaming-compatible-sve
mode we have custom lowering for 128-bit vector splats and later in
DAGCombiner::SimplifyVCastOp() we scalarized SPLAT because we have custom
lowering for SME. Later, we restored SPLAT opertion via performMulCombine().
llvm/include/llvm/CodeGen/TargetLowering.h
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/RISCV/RISCVISelLowering.cpp
llvm/lib/Target/RISCV/RISCVISelLowering.h
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86ISelLowering.h
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll