1 ; RUN: llc -march=hexagon < %s | FileCheck %s
3 target triple = "hexagon"
8 define i32 @xh_sh(i32 %x) local_unnamed_addr #0 {
10 %0 = tail call i32 @llvm.hexagon.A2.sath(i32 %x)
11 %1 = tail call i32 @llvm.hexagon.A2.sxth(i32 %0)
18 define i32 @xb_sb(i32 %x) local_unnamed_addr #0 {
20 %0 = tail call i32 @llvm.hexagon.A2.satb(i32 %x)
21 %1 = tail call i32 @llvm.hexagon.A2.sxtb(i32 %0)
25 ; CHECK-LABEL: xuh_suh
28 define i32 @xuh_suh(i32 %x) local_unnamed_addr #0 {
30 %0 = tail call i32 @llvm.hexagon.A2.satuh(i32 %x)
31 %1 = tail call i32 @llvm.hexagon.A2.zxth(i32 %0)
35 ; CHECK-LABEL: xub_sub
38 define i32 @xub_sub(i32 %x) local_unnamed_addr #0 {
40 %0 = tail call i32 @llvm.hexagon.A2.satub(i32 %x)
41 %1 = tail call i32 @llvm.hexagon.A2.zxtb(i32 %0)
46 declare i32 @llvm.hexagon.A2.sxtb(i32) #1
47 declare i32 @llvm.hexagon.A2.sxth(i32) #1
48 declare i32 @llvm.hexagon.A2.zxtb(i32) #1
49 declare i32 @llvm.hexagon.A2.zxth(i32) #1
51 declare i32 @llvm.hexagon.A2.satb(i32) #1
52 declare i32 @llvm.hexagon.A2.sath(i32) #1
53 declare i32 @llvm.hexagon.A2.satub(i32) #1
54 declare i32 @llvm.hexagon.A2.satuh(i32) #1
56 attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="-hvx,-long-calls" }
57 attributes #1 = { nounwind readnone }