[all-commits] [llvm/llvm-project] 290184: Revert "[AArch64] Remove superfluous sxtw in peeph...

Krasimir Georgiev via All-commits all-commits at lists.llvm.org
Wed Jul 17 03:56:56 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 290184880ae22541738e280397da33fe515e4c86
      https://github.com/llvm/llvm-project/commit/290184880ae22541738e280397da33fe515e4c86
  Author: Krasimir Georgiev <krasimir at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
    R llvm/lib/Target/AArch64/peephole-sxtw.mir
    M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll

  Log Message:
  -----------
  Revert "[AArch64] Remove superfluous sxtw in peephole opt (#96293)"

This reverts commit 7f2a5dfe35f8bbaca2819644c7aa844f938befd6.

It appears that after this, llc segfaults on the following code:
```
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64--linux-eabi"

define i32 @f(i32 %0) {
entry:
  %1 = sext i32 %0 to i64
  br label %A

A:
  %2 = trunc i64 %1 to i32
  %a69.us = sub i32 0, %2
  %a69.us.fr = freeze i32 %a69.us
  %3 = zext i32 %a69.us.fr to i64
  br label %B

B:
  %t = icmp eq i64 0, %3
  br i1 %t, label %A, label %B
}
```

assert.h assertion failed at .../llvm/lib/CodeGen/LiveVariables.cpp:159 in void llvm::LiveVariables::HandleVirtRegUse(Register, MachineBasicBlock *, MachineInstr &): MRI->getVRegDef(Reg) && "Register use before def!"



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list