[llvm] [SelectionDAG] Use unaligned store/load to move AVX registers onto stack for `insertelement` (PR #82130)

Manish Kausik H via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 20 07:58:27 PST 2024


Nirhar wrote:

We have about 10 Aarch64 Unit tests failing, all of them due to the following assertion failure:
```
AArch64Tests: /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h:576: void llvm::LegalizeRuleSet::aliasTo(unsigned int): Assertion `Rules.empty() && "Aliasing will discard rules"' failed.
 #0 0x00007feec86b1188 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:22
 #1 0x00007feec86b15a9 PrintStackTraceSignalHandler(void*) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x00007feec86aeb49 llvm::sys::RunSignalHandlers() /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/Support/Signals.cpp:105:20
 #3 0x00007feec86b0a20 SignalHandler(int) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007feec7c42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #5 0x00007feec7c969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #6 0x00007feec7c42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #7 0x00007feec7c287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #8 0x00007feec7c2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #9 0x00007feec7c39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x00007feecb9d2d42 llvm::LegalizeRuleSet::aliasTo(unsigned int) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h:577:13
#11 0x00007feecb9d16c1 llvm::LegalizerInfo::aliasActionDefinitions(unsigned int, unsigned int) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp:319:1
#12 0x00007feecb9d15c4 llvm::LegalizerInfo::getActionDefinitionsBuilder(std::initializer_list<unsigned int>) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp:305:3
#13 0x00007feecc0d6816 llvm::LegalizeRuleSet::legalFor(std::initializer_list<llvm::LLT>) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h:600:21
#14 0x00007feecc0d6816 llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(llvm::AArch64Subtarget const&) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp:126:0
#15 0x00007feecc2b68d6 std::__uniq_ptr_impl<llvm::LegalizerInfo, std::default_delete<llvm::LegalizerInfo>>::reset(llvm::LegalizerInfo*) /usr/include/c++/11/bits/unique_ptr.h:179:16
#16 0x00007feecc2b68d6 std::unique_ptr<llvm::LegalizerInfo, std::default_delete<llvm::LegalizerInfo>>::reset(llvm::LegalizerInfo*) /usr/include/c++/11/bits/unique_ptr.h:456:12
#17 0x00007feecc2b68d6 llvm::AArch64Subtarget::AArch64Subtarget(llvm::Triple const&, llvm::StringRef, llvm::StringRef, llvm::StringRef, llvm::TargetMachine const&, bool, unsigned int, unsigned int, bool, bool, bool) /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/lib/Target/AArch64/AArch64Subtarget.cpp:333:0
#18 0x000055f3624367b3 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_data() const /usr/include/c++/11/bits/basic_string.h:195:28
#19 0x000055f3624367b3 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_is_local() const /usr/include/c++/11/bits/basic_string.h:230:23
#20 0x000055f3624367b3 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_dispose() /usr/include/c++/11/bits/basic_string.h:239:18
#21 0x000055f3624367b3 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::~basic_string() /usr/include/c++/11/bits/basic_string.h:672:19
#22 0x000055f3624367b3 (anonymous namespace)::createInstrInfo(llvm::TargetMachine*) /usr/include/c++/11/bits/basic_string.h:671:7
#23 0x000055f362436edf function<InstSizes_STATEPOINT_Test::TestBody()::<lambda(llvm::AArch64InstrInfo&, llvm::MachineFunction&)> > /usr/include/c++/11/bits/std_function.h:437:19
#24 0x000055f362436edf InstSizes_STATEPOINT_Test::TestBody() /home/nirhar/Documents/OpenSource/llvm/llvm-project/llvm/unittests/Target/AArch64/InstSizes.cpp:155:0
#25 0x00007feecbeb09ca testing::Test::Run() /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/googletest/src/gtest.cc:2687:50
#26 0x00007feecbeb09ca testing::Test::Run() /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/googletest/src/gtest.cc:2677:6
#27 0x00007feecbeb0bdd testing::TestInfo::Run() /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/googletest/src/gtest.cc:2836:14
#28 0x00007feecbeb7172 testing::TestSuite::Run() (.part.0) /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/googletest/src/gtest.cc:3017:35
#29 0x00007feecbeb796f testing::internal::UnitTestImpl::RunAllTests() /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/googletest/src/gtest.cc:5921:41
#30 0x00007feecbea9fe1 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_data() const /usr/include/c++/11/bits/basic_string.h:195:28
#31 0x00007feecbea9fe1 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const /usr/include/c++/11/bits/basic_string.h:2321:23
#32 0x00007feecbea9fe1 testing::internal::ScopedPrematureExitFile::~ScopedPrematureExitFile() /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/googletest/src/gtest.cc:5055:26
#33 0x00007feecbea9fe1 testing::UnitTest::Run() /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/googletest/src/gtest.cc:5489:1
#34 0x00007feecc4c51ca main /home/nirhar/Documents/OpenSource/llvm/llvm-project/third-party/unittest/UnitTestMain/TestMain.cpp:56:1
#35 0x00007feec7c29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#36 0x00007feec7c29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#37 0x000055f36242d7d5 _start (/home/nirhar/Documents/OpenSource/llvm/llvm-project/build/unittests/Target/AArch64/./AArch64Tests+0xa7d5)
```

Is there a way to print the rules, so that I can investigate what those rules contain?



https://github.com/llvm/llvm-project/pull/82130


More information about the llvm-commits mailing list