42 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2 3; During lowering, a BUILD_VECTOR of undef values was created. This was4; not properly handled by buildHvxVectorReg, which tried to generate a5; splat, but had no source value.6;7; Check that this compiles successfully.8; CHECK: vsplat9 10target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048"11target triple = "hexagon"12 13@g0 = global <32 x i8> zeroinitializer14 15define void @fred(ptr %a0) #0 {16b0:17 %v1 = load i8, ptr %a0, align 118 %v2 = insertelement <32 x i8> undef, i8 %v1, i32 3119 %v3 = zext <32 x i8> %v2 to <32 x i16>20 %v4 = add nuw nsw <32 x i16> %v3, zeroinitializer21 %v5 = add nuw nsw <32 x i16> %v4, zeroinitializer22 %v6 = add nuw nsw <32 x i16> %v5, zeroinitializer23 %v7 = add nuw nsw <32 x i16> %v6, zeroinitializer24 %v8 = add nuw nsw <32 x i16> %v7, zeroinitializer25 %v9 = add nuw nsw <32 x i16> %v8, zeroinitializer26 %v10 = add <32 x i16> %v9, zeroinitializer27 %v11 = add <32 x i16> %v10, zeroinitializer28 %v12 = add <32 x i16> %v11, zeroinitializer29 %v13 = add <32 x i16> %v12, zeroinitializer30 %v14 = add <32 x i16> %v13, zeroinitializer31 %v15 = add <32 x i16> %v14, zeroinitializer32 %v16 = add <32 x i16> %v15, zeroinitializer33 %v17 = add <32 x i16> %v16, zeroinitializer34 %v18 = add <32 x i16> %v17, zeroinitializer35 %v19 = lshr <32 x i16> %v18, <i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4, i16 4>36 %v20 = trunc <32 x i16> %v19 to <32 x i8>37 store <32 x i8> %v20, ptr @g0, align 138 ret void39}40 41attributes #0 = { norecurse nounwind "target-cpu"="hexagonv60" "target-features"="+hvx-length64b,+hvxv60" }42