annotate test/CodeGen/Hexagon/expand-condsets-dead-bad.ll @ 146:3fc4d5c3e21e

set tail call flag for code segment in CGCAll
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:23:36 +0900
parents 803732b1fca8
children c2174574ed3a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
121
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
1 ; RUN: llc -march=hexagon -verify-machineinstrs < %s | FileCheck %s
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
2 ; REQUIRES: asserts
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
3
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
4 ; Check for some output other than crashing.
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
5 ; CHECK: bitsset
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
6
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
7 target triple = "hexagon"
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
8
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
9 ; Function Attrs: nounwind
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
10 define void @fred() local_unnamed_addr #0 {
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
11 b0:
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
12 %v1 = load i32, i32* undef, align 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
13 %v2 = and i32 %v1, 603979776
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
14 %v3 = trunc i32 %v2 to i30
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
15 switch i30 %v3, label %b23 [
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
16 i30 -536870912, label %b4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
17 i30 -469762048, label %b5
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
18 ]
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
19
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
20 b4: ; preds = %b0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
21 unreachable
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
22
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
23 b5: ; preds = %b0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
24 %v6 = load i32, i32* undef, align 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
25 br i1 undef, label %b7, label %b8
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
26
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
27 b7: ; preds = %b5
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
28 br label %b9
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
29
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
30 b8: ; preds = %b5
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
31 br label %b9
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
33 b9: ; preds = %b8, %b7
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
34 %v10 = load i32, i32* undef, align 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
35 %v11 = load i32, i32* undef, align 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
36 %v12 = mul nsw i32 %v11, %v10
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
37 %v13 = ashr i32 %v12, 13
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
38 %v14 = mul nsw i32 %v13, %v13
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
39 %v15 = zext i32 %v14 to i64
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
40 %v16 = mul nsw i32 %v6, %v6
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
41 %v17 = zext i32 %v16 to i64
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
42 %v18 = lshr i64 %v17, 5
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
43 %v19 = select i1 undef, i64 %v18, i64 %v17
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
44 %v20 = mul nuw nsw i64 %v19, %v15
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
45 %v21 = trunc i64 %v20 to i32
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
46 %v22 = and i32 %v21, 2147483647
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
47 store i32 %v22, i32* undef, align 4
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
48 unreachable
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
49
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
50 b23: ; preds = %b0
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
51 ret void
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
52 }
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
53
803732b1fca8 LLVM 5.0
kono
parents:
diff changeset
54 attributes #0 = { nounwind "target-cpu"="hexagonv5" "target-features"="-hvx,-long-calls" }