[llvm-readelf/llvm-objdump] - Improve/refactor the implementation of SHT_LLVM_ADDRSIG...
[llvm-complete.git] / test / CodeGen / Hexagon / tfr-to-combine.ll
blob86801dbc71f18b60c13ec4af5769dc25a2258656
1 ; RUN: llc -march=hexagon -mcpu=hexagonv5  -O3 -disable-hsdr < %s | FileCheck %s
3 ; Check that we combine TFRs and TFRIs into COMBINEs.
5 @a = external global i16
6 @b = external global i16
7 @c = external global i16
9 declare void @test0a(i32, i32) #0
10 declare void @test0b(i32, i32, i32, i32) #0
12 ; CHECK-LABEL: test1:
13 ; CHECK: combine(#10,#0)
14 define i32 @test1() #0 {
15 entry:
16   call void @test0a(i32 0, i32 10) #0
17   ret i32 10
20 ; CHECK-LABEL: test2:
21 ; CHECK: combine(#0,r{{[0-9]+}})
22 define i32 @test2() #0 {
23 entry:
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
30 ; CHECK-LABEL: test3:
31 ; CHECK: combine(#0,#100)
32 define i32 @test3() #0 {
33 entry:
34   call void @test0a(i32 100, i32 0)
35   ret i32 0
38 attributes #0 = { nounwind }