Skip to content

[AArch64] Assertion `!(SetNZCV && (NumPredicateVectors || NumDataVectors)) && "SetNZCV not supported with SVE vectors"' failed at -O1/O2/O3 #157252

@XChy

Description

@XChy

Reduced testcase:

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-buildroot-linux-gnu"

define void @i(ptr %ad, ptr %0) #0 {
entry:
  %aj = alloca i32, align 4
  callbr void asm sideeffect "", "!i,!i"()
          to label %asm.fallthrough [label %ah.preheader.preheader, label %ah.preheader.preheader]

ah.preheader.preheader:                           ; preds = %entry, %entry
  %conv = xor i8 0, 1
  br label %ah

asm.fallthrough:                                  ; preds = %entry
  unreachable

ah:                                               ; preds = %asm.fallthrough2, %asm.fallthrough2, %ah, %ah.preheader.preheader
  %af.2 = phi <8 x i64> [ zeroinitializer, %asm.fallthrough2 ], [ <i64 4056814946905, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0>, %ah.preheader.preheader ], [ zeroinitializer, %asm.fallthrough2 ], [ zeroinitializer, %ah ]
  %vecext = extractelement <8 x i64> %af.2, i64 0
  store i64 %vecext, ptr %ad, align 8
  call void asm sideeffect "", "~{v11}"()
  callbr void asm sideeffect "", "!i"()
          to label %asm.fallthrough2 [label %ah]

asm.fallthrough2:                                 ; preds = %ah
  %call = call i32 @g()
  store i8 %conv, ptr %0, align 1
  %cmp = icmp ne ptr %aj, null
  %conv3 = zext i1 %cmp to i32
  store i32 %conv3, ptr %ad, align 4
  callbr void asm sideeffect "", "!i"()
          to label %ah [label %ah]
}

declare i32 @g(...)

attributes #0 = { "frame-pointer"="non-leaf" "target-features"="+sve" }

Godbolt link: https://godbolt.org/z/avYszEcEG
This testcase is reduced from a well-defined C program.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions