Issue 166400
Summary [AArch64][GISel] MVNI/FNEG "Expected a FPR128 register, but got a FPR64 register"
Labels backend:AArch64, crash-on-valid
Assignees
Reporter sjoerdmeijer
    This IR:

```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64-unknown-linux-gnu"

define void @_Z4testhsstssssjsaiPA22_jPA22_aPA23_aPtS4_PA23_hPA23_A23_sSA_PsPA19_hPA19_SC_PA19_A19_aSI_PA19_A19_y(ptr %0) #0 {
entry:
  store <4 x i16> splat (i16 32763), ptr %0, align 2
  ret void
}

attributes #0 = { "target-cpu"="grace" }
```

triggers this verifier assert:

```
*** Bad machine code: Illegal virtual register for instruction ***
- function: _Z4testhsstssssjsaiPA22_jPA22_aPA23_aPtS4_PA23_hPA23_A23_sSA_PsPA19_hPA19_SC_PA19_A19_aSI_PA19_A19_y
- basic block: %bb.1 entry (0x4845b2f0)
- instruction: %4:fpr128 = MVNIv4i16 4, 0
- operand 0:   %4:fpr128
Expected a FPR64 register, but got a FPR128 register

*** Bad machine code: Illegal virtual register for instruction ***
- function: _Z4testhsstssssjsaiPA22_jPA22_aPA23_aPtS4_PA23_hPA23_A23_sSA_PsPA19_hPA19_SC_PA19_A19_aSI_PA19_A19_y
- basic block: %bb.1 entry (0x4845b2f0)
- instruction: %1:fpr64 = FNEGv8f16 %4:fpr128
- operand 0:   %1:fpr64
Expected a FPR128 register, but got a FPR64 register
LLVM ERROR: Found 2 machine code errors.
```

compiled with `llc -global-isel --verify-machineinstrs`, see also:

https://godbolt.org/z/a36cdraM8
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to