[test] Pre-commit llvm.experimental.memset.pattern tests prior to MemoryLocation...
[llvm-project.git] / llvm / test / CodeGen / Hexagon / autohvx / isel-build-undef.ll
blobe4898bd6d5a112899c0880ef3c5c96ee64f8f47d
1 ; RUN: llc -mtriple=hexagon < %s | FileCheck %s
3 ; During lowering, a BUILD_VECTOR of undef values was created. This was
4 ; not properly handled by buildHvxVectorReg, which tried to generate a
5 ; splat, but had no source value.
7 ; Check that this compiles successfully.
8 ; CHECK: vsplat
10 target 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"
11 target triple = "hexagon"
13 @g0 = global <32 x i8> zeroinitializer
15 define void @fred(ptr %a0) #0 {
16 b0:
17   %v1 = load i8, ptr %a0, align 1
18   %v2 = insertelement <32 x i8> undef, i8 %v1, i32 31
19   %v3 = zext <32 x i8> %v2 to <32 x i16>
20   %v4 = add nuw nsw <32 x i16> %v3, zeroinitializer
21   %v5 = add nuw nsw <32 x i16> %v4, zeroinitializer
22   %v6 = add nuw nsw <32 x i16> %v5, zeroinitializer
23   %v7 = add nuw nsw <32 x i16> %v6, zeroinitializer
24   %v8 = add nuw nsw <32 x i16> %v7, zeroinitializer
25   %v9 = add nuw nsw <32 x i16> %v8, zeroinitializer
26   %v10 = add <32 x i16> %v9, zeroinitializer
27   %v11 = add <32 x i16> %v10, zeroinitializer
28   %v12 = add <32 x i16> %v11, zeroinitializer
29   %v13 = add <32 x i16> %v12, zeroinitializer
30   %v14 = add <32 x i16> %v13, zeroinitializer
31   %v15 = add <32 x i16> %v14, zeroinitializer
32   %v16 = add <32 x i16> %v15, zeroinitializer
33   %v17 = add <32 x i16> %v16, zeroinitializer
34   %v18 = add <32 x i16> %v17, zeroinitializer
35   %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 1
38   ret void
41 attributes #0 = { norecurse nounwind "target-cpu"="hexagonv60" "target-features"="+hvx-length64b,+hvxv60" }