Krzysztof Parzyszek | 6bfc657 | 2018-10-19 17:31:11 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=hexagon < %s | FileCheck %s |
Jyotsna Verma | 300f0b9 | 2013-05-10 20:27:34 +0000 | [diff] [blame] | 2 | ; Check that we are able to predicate instructions with gp-relative |
| 3 | ; addressing mode. |
| 4 | |
Krzysztof Parzyszek | 6bfc657 | 2018-10-19 17:31:11 +0000 | [diff] [blame] | 5 | ; CHECK: if ({{!?}}p{{[0-3]+}}{{(.new)?}}) r{{[0-9]+}} = memw(##g{{[01]}}) |
| 6 | ; CHECK: if ({{!?}}p{{[0-3]+}}) r{{[0-9]+}} = memw(##g{{[01]}}) |
Jyotsna Verma | 300f0b9 | 2013-05-10 20:27:34 +0000 | [diff] [blame] | 7 | |
Krzysztof Parzyszek | 6bfc657 | 2018-10-19 17:31:11 +0000 | [diff] [blame] | 8 | @g0 = external global i32 |
| 9 | @g1 = common global i32 0, align 4 |
Jyotsna Verma | 300f0b9 | 2013-05-10 20:27:34 +0000 | [diff] [blame] | 10 | |
Krzysztof Parzyszek | 6bfc657 | 2018-10-19 17:31:11 +0000 | [diff] [blame] | 11 | define i32 @f0(i8 zeroext %a0, i8 zeroext %a1) #0 { |
| 12 | b0: |
| 13 | %v0 = icmp eq i8 %a0, %a1 |
| 14 | br i1 %v0, label %b2, label %b1 |
Jyotsna Verma | 300f0b9 | 2013-05-10 20:27:34 +0000 | [diff] [blame] | 15 | |
Krzysztof Parzyszek | 6bfc657 | 2018-10-19 17:31:11 +0000 | [diff] [blame] | 16 | b1: ; preds = %b0 |
| 17 | %v1 = load i32, i32* @g1, align 4 |
| 18 | br label %b3 |
Jyotsna Verma | 300f0b9 | 2013-05-10 20:27:34 +0000 | [diff] [blame] | 19 | |
Krzysztof Parzyszek | 6bfc657 | 2018-10-19 17:31:11 +0000 | [diff] [blame] | 20 | b2: ; preds = %b0 |
| 21 | %v2 = load i32, i32* @g0, align 4 |
| 22 | store i32 %v2, i32* @g1, align 4 |
| 23 | br label %b3 |
| 24 | |
| 25 | b3: ; preds = %b2, %b1 |
| 26 | %v3 = phi i32 [ %v1, %b1 ], [ %v2, %b2 ] |
| 27 | ret i32 %v3 |
Jyotsna Verma | 300f0b9 | 2013-05-10 20:27:34 +0000 | [diff] [blame] | 28 | } |
Krzysztof Parzyszek | 6bfc657 | 2018-10-19 17:31:11 +0000 | [diff] [blame] | 29 | |
| 30 | attributes #0 = { nounwind "target-cpu"="hexagonv5" } |