2015-10-17 04:38:54 +08:00
|
|
|
; RUN: llc -march=hexagon -mcpu=hexagonv5 -O3 -disable-hsdr < %s | FileCheck %s
|
2013-05-15 02:54:06 +08:00
|
|
|
|
|
|
|
; Check that we combine TFRs and TFRIs into COMBINEs.
|
|
|
|
|
|
|
|
@a = external global i16
|
|
|
|
@b = external global i16
|
|
|
|
@c = external global i16
|
|
|
|
|
2017-10-21 03:33:12 +08:00
|
|
|
declare void @test0a(i32, i32) #0
|
|
|
|
declare void @test0b(i32, i32, i32, i32) #0
|
|
|
|
|
|
|
|
; CHECK-LABEL: test1:
|
2017-02-10 23:33:13 +08:00
|
|
|
; CHECK: combine(#10,#0)
|
2017-10-21 03:33:12 +08:00
|
|
|
define i32 @test1() #0 {
|
2013-05-15 02:54:06 +08:00
|
|
|
entry:
|
2017-10-21 03:33:12 +08:00
|
|
|
call void @test0a(i32 0, i32 10) #0
|
|
|
|
ret i32 10
|
2013-05-15 02:54:06 +08:00
|
|
|
}
|
|
|
|
|
2017-10-21 03:33:12 +08:00
|
|
|
; CHECK-LABEL: test2:
|
2017-02-10 23:33:13 +08:00
|
|
|
; CHECK: combine(#0,r{{[0-9]+}})
|
2017-10-21 03:33:12 +08:00
|
|
|
define i32 @test2() #0 {
|
2013-05-15 02:54:06 +08:00
|
|
|
entry:
|
2017-10-21 03:33:12 +08:00
|
|
|
%t0 = load i16, i16* @c, align 2
|
|
|
|
%t1 = zext i16 %t0 to i32
|
|
|
|
call void @test0b(i32 %t1, i32 0, i32 %t1, i32 0)
|
|
|
|
ret i32 0
|
2013-05-15 02:54:06 +08:00
|
|
|
}
|
|
|
|
|
2017-10-21 03:33:12 +08:00
|
|
|
; CHECK-LABEL: test3:
|
2017-02-10 23:33:13 +08:00
|
|
|
; CHECK: combine(#0,#100)
|
2017-10-21 03:33:12 +08:00
|
|
|
define i32 @test3() #0 {
|
2013-05-15 02:54:06 +08:00
|
|
|
entry:
|
2017-10-21 03:33:12 +08:00
|
|
|
call void @test0a(i32 100, i32 0)
|
|
|
|
ret i32 0
|
2013-05-15 02:54:06 +08:00
|
|
|
}
|
2017-10-21 03:33:12 +08:00
|
|
|
|
|
|
|
attributes #0 = { nounwind }
|