Home | History | Annotate | Download | only in Hexagon
      1 ; RUN: llc -march=hexagon -mcpu=hexagonv5  -O3 -disable-hsdr < %s | FileCheck %s
      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 
      9 declare void @test0a(i32, i32) #0
     10 declare void @test0b(i32, i32, i32, i32) #0
     11 
     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
     18 }
     19 
     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
     28 }
     29 
     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
     36 }
     37 
     38 attributes #0 = { nounwind }
     39