Skip to content

[AArch64][GISel] MVNI/FNEG "Expected a FPR128 register, but got a FPR64 register" #166400

@sjoerdmeijer

Description

@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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions