Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aarch64 backend OOM on -O0 when compiling llvm.fptosi.sat.v3i32.v3f32 #94694

Closed
programmerjake opened this issue Jun 6, 2024 · 5 comments
Closed

Comments

@programmerjake
Copy link
Contributor

https://llvm.godbolt.org/z/1Ehsh97nP

target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-macosx11.0.0"

define internal void @f(ptr sret([12 x i8]) align 4 %_0, ptr align 4 %self) unnamed_addr {
start:
  %0 = load <3 x float>, ptr %self, align 4
  %1 = call <3 x i32> @llvm.fptosi.sat.v3i32.v3f32(<3 x float> %0)
  store <3 x i32> %1, ptr %_0, align 4
  ret void
}

@calebzulawski
originally encountered in Rust's project-portable-simd rust-lang/portable-simd#422 (comment)

@programmerjake
Copy link
Contributor Author

I ran it under valgrind and when i gave up it had used >4GB of ram which is absurd for a function of this size

@llvmbot
Copy link
Member

llvmbot commented Jun 6, 2024

@llvm/issue-subscribers-backend-aarch64

Author: Jacob Lifshay (programmerjake)

https://llvm.godbolt.org/z/1Ehsh97nP ```llvm target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" target triple = "arm64-apple-macosx11.0.0"

define internal void @f(ptr sret([12 x i8]) align 4 %_0, ptr align 4 %self) unnamed_addr {
start:
%0 = load <3 x float>, ptr %self, align 4
%1 = call <3 x i32> @llvm.fptosi.sat.v3i32.v3f32(<3 x float> %0)
store <3 x i32> %1, ptr %_0, align 4
ret void
}


@<!-- -->calebzulawski 
originally encountered in Rust's project-portable-simd https://github.com/rust-lang/portable-simd/pull/422#issuecomment-2153487367
</details>

@programmerjake
Copy link
Contributor Author

valgrind massif heap tree shortly before I killed it:

#-----------
snapshot=81
#-----------
time=168329064412
mem_heap_B=5891513805
mem_heap_extra_B=85859
mem_stacks_B=0
heap_tree=peak
n4: 5891513805 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
 n2: 4042308640 0x2BE6999: llvm::SmallVectorBase<unsigned int>::mallocForGrow(void*, unsigned long, unsigned long, unsigned long&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
  n2: 4042260400 0x1E3286D: llvm::SmallVectorTemplateBase<std::pair<unsigned int, llvm::SmallVector<llvm::Register, 4u> >, false>::grow(unsigned long) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
   n1: 4042260400 0x1E335FC: llvm::MachineRegisterInfo::createIncompleteVirtualRegister(llvm::StringRef) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n1: 4042260400 0x1E33721: llvm::MachineRegisterInfo::createGenericVirtualRegister(llvm::LLT, llvm::StringRef) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
     n2: 4042260400 0x30F66A1: llvm::MachineIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
      n1: 4042260400 0x301B572: llvm::CSEMIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
       n1: 4042260400 0x30FB930: llvm::MachineIRBuilder::buildUnmerge(llvm::LLT, llvm::SrcOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
        n1: 4042260400 0x30FBB01: llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(llvm::DstOp const&, llvm::SrcOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
         n1: 4042260400 0x30ADB57: llvm::LegalizerHelper::moreElementsVector(llvm::MachineInstr&, unsigned int, llvm::LLT) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
          n1: 4042260400 0x309B55A: llvm::Legalizer::legalizeMachineFunction(llvm::MachineFunction&, llvm::LegalizerInfo const&, llvm::ArrayRef<llvm::GISelChangeObserver*>, llvm::LostDebugLocObserver&, llvm::MachineIRBuilder&, llvm::GISelKnownBits*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
           n1: 4042260400 0x309D98C: llvm::Legalizer::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
            n1: 4042260400 0x1D9149F: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
             n1: 4042260400 0x22CC029: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
              n1: 4042260400 0x22CC1B8: llvm::FPPassManager::runOnModule(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
               n1: 4042260400 0x22CD68F: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
                n1: 4042260400 0x4BDEFA: compileModule(char**, llvm::LLVMContext&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
                 n0: 4042260400 0x3DF075: main (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
      n0: 0 in 1 place, below massif's threshold (1.00%)
   n0: 0 in 1 place, below massif's threshold (1.00%)
  n0: 48240 in 5 places, all below massif's threshold (1.00%)
 n5: 1757950016 0x2BE6822: llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
  n1: 1077936112 0x1E33638: llvm::MachineRegisterInfo::createIncompleteVirtualRegister(llvm::StringRef) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
   n1: 1077936112 0x1E33721: llvm::MachineRegisterInfo::createGenericVirtualRegister(llvm::LLT, llvm::StringRef) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n2: 1077936112 0x30F66A1: llvm::MachineIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
     n1: 1077936112 0x301B572: llvm::CSEMIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
      n1: 1077936112 0x30FB930: llvm::MachineIRBuilder::buildUnmerge(llvm::LLT, llvm::SrcOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
       n1: 1077936112 0x30FBB01: llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(llvm::DstOp const&, llvm::SrcOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
        n1: 1077936112 0x30ADB57: llvm::LegalizerHelper::moreElementsVector(llvm::MachineInstr&, unsigned int, llvm::LLT) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
         n1: 1077936112 0x309B55A: llvm::Legalizer::legalizeMachineFunction(llvm::MachineFunction&, llvm::LegalizerInfo const&, llvm::ArrayRef<llvm::GISelChangeObserver*>, llvm::LostDebugLocObserver&, llvm::MachineIRBuilder&, llvm::GISelKnownBits*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
          n1: 1077936112 0x309D98C: llvm::Legalizer::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
           n1: 1077936112 0x1D9149F: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
            n1: 1077936112 0x22CC029: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
             n1: 1077936112 0x22CC1B8: llvm::FPPassManager::runOnModule(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
              n1: 1077936112 0x22CD68F: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
               n1: 1077936112 0x4BDEFA: compileModule(char**, llvm::LLVMContext&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
                n0: 1077936112 0x3DF075: main (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
     n0: 0 in 1 place, below massif's threshold (1.00%)
  n1: 536870904 0x1E304A2: llvm::MachineRegisterInfo::setType(llvm::Register, llvm::LLT) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
   n2: 536870904 0x1E33746: llvm::MachineRegisterInfo::createGenericVirtualRegister(llvm::LLT, llvm::StringRef) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n1: 536870904 0x30F66A1: llvm::MachineIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
     n1: 536870904 0x301B572: llvm::CSEMIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
      n1: 536870904 0x30FB930: llvm::MachineIRBuilder::buildUnmerge(llvm::LLT, llvm::SrcOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
       n1: 536870904 0x30FBB01: llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(llvm::DstOp const&, llvm::SrcOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
        n1: 536870904 0x30ADB57: llvm::LegalizerHelper::moreElementsVector(llvm::MachineInstr&, unsigned int, llvm::LLT) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
         n1: 536870904 0x309B55A: llvm::Legalizer::legalizeMachineFunction(llvm::MachineFunction&, llvm::LegalizerInfo const&, llvm::ArrayRef<llvm::GISelChangeObserver*>, llvm::LostDebugLocObserver&, llvm::MachineIRBuilder&, llvm::GISelKnownBits*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
          n1: 536870904 0x309D98C: llvm::Legalizer::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
           n1: 536870904 0x1D9149F: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
            n1: 536870904 0x22CC029: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
             n1: 536870904 0x22CC1B8: llvm::FPPassManager::runOnModule(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
              n1: 536870904 0x22CD68F: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
               n1: 536870904 0x4BDEFA: compileModule(char**, llvm::LLVMContext&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
                n0: 536870904 0x3DF075: main (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n0: 0 in 3 places, all below massif's threshold (1.00%)
  n1: 75497464 0x3011C47: llvm::GISelCSEInfo::recordNewInstruction(llvm::MachineInstr*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
   n1: 75497464 0x3029E0F: llvm::GISelObserverWrapper::MF_HandleInsertion(llvm::MachineInstr&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n1: 75497464 0x30F647A: llvm::MachineIRBuilder::insertInstr(llvm::MachineInstrBuilder) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
     n1: 75497464 0x30F6566: llvm::MachineIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
      n1: 75497464 0x301BE7A: llvm::CSEMIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
       n1: 75497464 0x30FAB71: llvm::MachineIRBuilder::buildUndef(llvm::DstOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
        n1: 75497464 0x30AD9E8: llvm::LegalizerHelper::moreElementsVector(llvm::MachineInstr&, unsigned int, llvm::LLT) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
         n1: 75497464 0x309B55A: llvm::Legalizer::legalizeMachineFunction(llvm::MachineFunction&, llvm::LegalizerInfo const&, llvm::ArrayRef<llvm::GISelChangeObserver*>, llvm::LostDebugLocObserver&, llvm::MachineIRBuilder&, llvm::GISelKnownBits*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
          n1: 75497464 0x309D98C: llvm::Legalizer::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
           n1: 75497464 0x1D9149F: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
            n1: 75497464 0x22CC029: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
             n1: 75497464 0x22CC1B8: llvm::FPPassManager::runOnModule(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
              n1: 75497464 0x22CD68F: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
               n1: 75497464 0x4BDEFA: compileModule(char**, llvm::LLVMContext&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
                n0: 75497464 0x3DF075: main (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
  n1: 67633144 0x309D3FB: llvm::Legalizer::legalizeMachineFunction(llvm::MachineFunction&, llvm::LegalizerInfo const&, llvm::ArrayRef<llvm::GISelChangeObserver*>, llvm::LostDebugLocObserver&, llvm::MachineIRBuilder&, llvm::GISelKnownBits*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
   n1: 67633144 0x309D98C: llvm::Legalizer::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n1: 67633144 0x1D9149F: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
     n1: 67633144 0x22CC029: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
      n1: 67633144 0x22CC1B8: llvm::FPPassManager::runOnModule(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
       n1: 67633144 0x22CD68F: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
        n1: 67633144 0x4BDEFA: compileModule(char**, llvm::LLVMContext&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
         n0: 67633144 0x3DF075: main (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
  n0: 12392 in 16 places, all below massif's threshold (1.00%)
 n2: 90463680 0x61DCBE5: operator new(unsigned long, std::align_val_t) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28)
  n1: 90177536 0x300EFAA: void* operator new<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>(unsigned long, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&) [clone .constprop.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
   n2: 90177536 0x301314B: llvm::GISelCSEInfo::insertInstr(llvm::MachineInstr*, void*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n1: 90173440 0x301BE92: llvm::CSEMIRBuilder::buildInstr(unsigned int, llvm::ArrayRef<llvm::DstOp>, llvm::ArrayRef<llvm::SrcOp>, std::optional<unsigned int>) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
     n1: 90173440 0x30FAB71: llvm::MachineIRBuilder::buildUndef(llvm::DstOp const&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
      n1: 90173440 0x30AD9E8: llvm::LegalizerHelper::moreElementsVector(llvm::MachineInstr&, unsigned int, llvm::LLT) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
       n1: 90173440 0x309B55A: llvm::Legalizer::legalizeMachineFunction(llvm::MachineFunction&, llvm::LegalizerInfo const&, llvm::ArrayRef<llvm::GISelChangeObserver*>, llvm::LostDebugLocObserver&, llvm::MachineIRBuilder&, llvm::GISelKnownBits*) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
        n1: 90173440 0x309D98C: llvm::Legalizer::runOnMachineFunction(llvm::MachineFunction&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
         n1: 90173440 0x1D9149F: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) [clone .part.0] (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
          n1: 90173440 0x22CC029: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
           n1: 90173440 0x22CC1B8: llvm::FPPassManager::runOnModule(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
            n1: 90173440 0x22CD68F: llvm::legacy::PassManagerImpl::run(llvm::Module&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
             n1: 90173440 0x4BDEFA: compileModule(char**, llvm::LLVMContext&) (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
              n0: 90173440 0x3DF075: main (in /home/jacob/projects/rust/build/x86_64-unknown-linux-gnu/llvm/bin/llc)
    n0: 4096 in 1 place, below massif's threshold (1.00%)
  n0: 286144 in 56 places, all below massif's threshold (1.00%)
 n0: 791469 in 788 places, all below massif's threshold (1.00%)
#-----------

@aemerson aemerson self-assigned this Jun 7, 2024
@davemgreen
Copy link
Collaborator

I have been looking at adding fptosi.sat support recently. Currently GISel doesn't handle them, so this will be treated like a generic intrinsic and the real problem might only be tangentially related to them.

@davemgreen
Copy link
Collaborator

This should be fixed for fptosi.sat, as we legalize those operations correctly after #96297.

IIRC There might be other intrinsics that hit the same issue with odd vector types, please let us know and reopen (or create a new issue) if you see any. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants