Krzysztof Parzyszek | a7c5f04 | 2015-10-16 20:38:54 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=hexagon -mcpu=hexagonv5 -O3 -disable-hsdr < %s | FileCheck %s |
Jyotsna Verma | 803e506 | 2013-05-14 18:54:06 +0000 | [diff] [blame] | 2 | |
| 3 | ; Check that we combine TFRs and TFRIs into COMBINEs. |
| 4 | |
| 5 | @a = external global i16 |
| 6 | @b = external global i16 |
| 7 | @c = external global i16 |
| 8 | |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 9 | declare void @test0a(i32, i32) #0 |
| 10 | declare void @test0b(i32, i32, i32, i32) #0 |
| 11 | |
| 12 | ; CHECK-LABEL: test1: |
Krzysztof Parzyszek | a72fad9 | 2017-02-10 15:33:13 +0000 | [diff] [blame] | 13 | ; CHECK: combine(#10,#0) |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 14 | define i32 @test1() #0 { |
Jyotsna Verma | 803e506 | 2013-05-14 18:54:06 +0000 | [diff] [blame] | 15 | entry: |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 16 | call void @test0a(i32 0, i32 10) #0 |
| 17 | ret i32 10 |
Jyotsna Verma | 803e506 | 2013-05-14 18:54:06 +0000 | [diff] [blame] | 18 | } |
| 19 | |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 20 | ; CHECK-LABEL: test2: |
Krzysztof Parzyszek | a72fad9 | 2017-02-10 15:33:13 +0000 | [diff] [blame] | 21 | ; CHECK: combine(#0,r{{[0-9]+}}) |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 22 | define i32 @test2() #0 { |
Jyotsna Verma | 803e506 | 2013-05-14 18:54:06 +0000 | [diff] [blame] | 23 | entry: |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 24 | %t0 = load i16, i16* @c, align 2 |
| 25 | %t1 = zext i16 %t0 to i32 |
| 26 | call void @test0b(i32 %t1, i32 0, i32 %t1, i32 0) |
| 27 | ret i32 0 |
Jyotsna Verma | 803e506 | 2013-05-14 18:54:06 +0000 | [diff] [blame] | 28 | } |
| 29 | |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 30 | ; CHECK-LABEL: test3: |
Krzysztof Parzyszek | a72fad9 | 2017-02-10 15:33:13 +0000 | [diff] [blame] | 31 | ; CHECK: combine(#0,#100) |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 32 | define i32 @test3() #0 { |
Jyotsna Verma | 803e506 | 2013-05-14 18:54:06 +0000 | [diff] [blame] | 33 | entry: |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 34 | call void @test0a(i32 100, i32 0) |
| 35 | ret i32 0 |
Jyotsna Verma | 803e506 | 2013-05-14 18:54:06 +0000 | [diff] [blame] | 36 | } |
Krzysztof Parzyszek | 64e5d7d | 2017-10-20 19:33:12 +0000 | [diff] [blame] | 37 | |
| 38 | attributes #0 = { nounwind } |