brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · e4898bd Raw
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