[PATCH] D94501: [SelectionDAG] Support scalable-vector splats in more cases

Huihui Zhang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 16 14:18:16 PST 2021


huihuiz added a comment.

This is crashing SVE target lowering with "LLVM ERROR: Cannot select: t23: nxv4i32 = mulhu t9, t34"
Let me know if there is a way of fixing it?

Take below t.ll
Run: llc -O2 -mtriple=aarch64-linux-gnu -mattr=+sve < t.ll

  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64-unknown-linux-gnu"
  
  define void @test(<vscale x 4 x i32>* %in, <vscale x 4 x i32>* %out, <vscale x 4 x i1> %p) {
  entry:
    %a = load <vscale x 4 x i32>, <vscale x 4 x i32>* %in, align 16
    %div = udiv <vscale x 4 x i32> %a, shufflevector (<vscale x 4 x i32> insertelement (<vscale x 4 x i32> undef, i32 3, i32 0), <vscale x 4 x i32> undef, <vscale x 4 x i32> zeroinitializer)
    call void @llvm.masked.store.nxv4i32.p0nxv4i32(<vscale x 4 x i32> %div, <vscale x 4 x i32>* %out, i32 4, <vscale x 4 x i1> %p)
    unreachable
  }
  
  declare void @llvm.masked.store.nxv4i32.p0nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>*, i32 immarg, <vscale x 4 x i1>)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D94501/new/

https://reviews.llvm.org/D94501



More information about the llvm-commits mailing list