[all-commits] [llvm/llvm-project] 57c0c4: [X86] Fix crash with i64 bitreverse on 32-bit targ...

Craig Topper via All-commits all-commits at lists.llvm.org
Sun Nov 15 19:03:16 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 57c0c4a27575840ae0a48eb9f8455a5ed087c857
      https://github.com/llvm/llvm-project/commit/57c0c4a27575840ae0a48eb9f8455a5ed087c857
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2020-11-15 (Sun, 15 Nov 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bitreverse.ll

  Log Message:
  -----------
  [X86] Fix crash with i64 bitreverse on 32-bit targets with XOP.

We unconditionally marked i64 as Custom, but did not install a
handler in ReplaceNodeResults when i64 isn't legal type. This
leads to ReplaceNodeResults asserting.

We have two options to fix this. Only mark i64 as Custom on
64-bit targets and let it expand to two i32 bitreverses which
each need a VPPERM. Or the other option is to add the Custom
handling to ReplaceNodeResults. This is what I went with.




More information about the All-commits mailing list