| Krzysztof Parzyszek | 167d918 | 2016-07-28 20:01:59 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=hexagon < %s | FileCheck %s |
| 2 | ; CHECK: cmp | ||||
| 3 | ; Make sure that the result is not a compile-time constant. | ||||
| 4 | |||||
| 5 | define i64 @foo(i32 %x) { | ||||
| 6 | entry: | ||||
| 7 | %c = icmp slt i32 %x, 17 | ||||
| 8 | br i1 %c, label %b1, label %b2 | ||||
| 9 | b1: | ||||
| 10 | br label %b2 | ||||
| 11 | b2: | ||||
| 12 | %p = phi i32 [ 1, %entry ], [ 0, %b1 ] | ||||
| 13 | %q = sub i32 %x, %x | ||||
| 14 | %y = zext i32 %q to i64 | ||||
| 15 | %u = shl i64 %y, 32 | ||||
| 16 | %v = zext i32 %p to i64 | ||||
| 17 | %w = or i64 %u, %v | ||||
| 18 | ret i64 %w | ||||
| 19 | } | ||||