Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLVM ERROR: Cannot select: intrinsic %llvm.aarch64.neon.vcvtfp2fxs #53679

Closed
rscottmanley opened this issue Feb 9, 2022 · 5 comments
Closed

Comments

@rscottmanley
Copy link
Contributor

Getting an abort below when trying to compile for -mcpu=neoverse-v1 at 256 bits. I think it may have something to do with the const vector?

Compiling with llc bug.ll -mcpu=neoverse-v1 -aarch64-sve-vector-bits-min=256 -o bug.s

target triple = "arm64-linux"

; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind null_pointer_is_valid willreturn
define dso_local void @crash_(i64* nocapture readonly %a, i64* nocapture writeonly %b) local_unnamed_addr #0 align 16 {
L.entry:
  %0 = bitcast i64* %a to <8 x float>*
  %1 = load <8 x float>, <8 x float>* %0, align 4
  %2 = fmul  <8 x float> %1, <float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03>
  %3 = fmul  <8 x float> %2, <float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03>
  %4 = fptosi <8 x float> %3 to <8 x i32>
  %5 = bitcast i64* %b to <8 x i32>*
  store <8 x i32> %4, <8 x i32>* %5, align 4
  %6 = getelementptr i64, i64* %a, i64 4
  %7 = bitcast i64* %6 to <8 x float>*
  %8 = load <8 x float>, <8 x float>* %7, align 4
  %9 = fmul  <8 x float> %8, <float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03>
  %10 = fmul  <8 x float> %9, <float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03>
  %11 = fptosi <8 x float> %10 to <8 x i32>
  %12 = getelementptr i64, i64* %b, i64 4
  %13 = bitcast i64* %12 to <8 x i32>*
  store <8 x i32> %11, <8 x i32>* %13, align 4
  %14 = getelementptr i64, i64* %a, i64 8
  %15 = bitcast i64* %14 to <8 x float>*
  %16 = load <8 x float>, <8 x float>* %15, align 4
  %17 = fmul  <8 x float> %16, <float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03>
  %18 = fmul  <8 x float> %17, <float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03, float 4.096000e+03>
  %19 = fptosi <8 x float> %18 to <8 x i32>
  %20 = getelementptr i64, i64* %b, i64 8
  %21 = bitcast i64* %20 to <8 x i32>*
  store <8 x i32> %19, <8 x i32>* %21, align 4
  ret void
}

attributes #0 = { mustprogress nofree noinline norecurse nosync nounwind null_pointer_is_valid willreturn "target-cpu"="neoverse-v1" }
@rscottmanley
Copy link
Contributor Author

Not sure how to add people to notifications, apologies if doing this incorrectly. Seems weird I can't edit the bug after submission either.
@paulwalker-arm
@mcinally

@llvmbot
Copy link
Collaborator

llvmbot commented Feb 9, 2022

@llvm/issue-subscribers-backend-aarch64

@brads55
Copy link
Collaborator

brads55 commented Feb 10, 2022

Review to fix this: https://reviews.llvm.org/D119428

llvmbot pushed a commit to llvmbot/llvm-project that referenced this issue Feb 11, 2022
@rscottmanley
Copy link
Contributor Author

Will this be fixed in LLVM 14?

@peterwaller-arm
Copy link
Contributor

It should be, there is a backport request you can follow here: #53754

tstellar pushed a commit to llvmbot/llvm-project that referenced this issue Feb 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants