• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -march=hexagon < %s | FileCheck %s
2
3; Check that this compiles successfully. Used to crash with "cannot select
4; v8i8 = vsplat ..."
5; CHECK: jumpr r31
6
7target 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"
8target triple = "hexagon"
9
10; Function Attrs: nounwind
11define i32 @fred() #0 {
12b0:
13  br label %b1
14
15b1:                                               ; preds = %b1, %b0
16  %v2 = xor <16 x i8> undef, undef
17  %v3 = icmp eq i32 undef, undef
18  br i1 %v3, label %b4, label %b1
19
20b4:                                               ; preds = %b1
21  %v5 = xor <16 x i8> %v2, zeroinitializer
22  %v6 = xor <16 x i8> %v5, zeroinitializer
23  %v7 = xor <16 x i8> %v6, zeroinitializer
24  %v8 = xor <16 x i8> %v7, zeroinitializer
25  %v9 = shufflevector <16 x i8> %v8, <16 x i8> undef, <16 x i32> <i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
26  %v10 = xor <16 x i8> %v8, %v9
27  %v11 = extractelement <16 x i8> %v10, i32 0
28  br i1 undef, label %b14, label %b12
29
30b12:                                              ; preds = %b4
31  %v13 = xor i8 undef, %v11
32  br label %b14
33
34b14:                                              ; preds = %b12, %b4
35  %v15 = phi i8 [ %v11, %b4 ], [ %v13, %b12 ]
36  %v16 = zext i8 %v15 to i32
37  ret i32 %v16
38}
39
40attributes #0 = { nounwind "target-cpu"="hexagonv60" "target-features"="+hvx-length64b,+hvxv60" }
41