• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -march=hexagon < %s
2; REQUIRES: asserts
3; Used to fail with "Cannot BITCAST between types of different sizes!"
4
5target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-v64:64:64-v32:32:32-a0:0-n16:32"
6target triple = "hexagon"
7
8define void @foo() nounwind {
9entry:
10  br label %while.body
11
12while.body:                                       ; preds = %if.then155, %if.then12, %if.then, %entry
13  br i1 undef, label %if.then, label %if.else
14
15if.then:                                          ; preds = %while.body
16  br label %while.body
17
18if.else:                                          ; preds = %while.body
19  br i1 undef, label %if.then12, label %if.else17
20
21if.then12:                                        ; preds = %if.else
22  br label %while.body
23
24if.else17:                                        ; preds = %if.else
25  br i1 false, label %if.then22, label %if.else35
26
27if.then22:                                        ; preds = %if.else17
28  unreachable
29
30if.else35:                                        ; preds = %if.else17
31  br i1 false, label %if.then40, label %if.else83
32
33if.then40:                                        ; preds = %if.else35
34  unreachable
35
36if.else83:                                        ; preds = %if.else35
37  br i1 false, label %if.then88, label %if.else150
38
39if.then88:                                        ; preds = %if.else83
40  unreachable
41
42if.else150:                                       ; preds = %if.else83
43  %cmp154 = icmp eq i32 undef, 0
44  br i1 %cmp154, label %if.then155, label %if.else208
45
46if.then155:                                       ; preds = %if.else150
47  %_p_splat.1 = shufflevector <1 x i16> zeroinitializer, <1 x i16> undef, <2 x i32> zeroinitializer
48  %0 = sext <2 x i16> %_p_splat.1 to <2 x i32>
49  %mul198p_vec.1 = mul <2 x i32> %0, <i32 4, i32 4>
50  %1 = extractelement <2 x i32> %mul198p_vec.1, i32 0
51  store i32 %1, i32* undef, align 4
52  br label %while.body
53
54if.else208:                                       ; preds = %if.else150
55  unreachable
56}
57