44 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2; Check that we generate compare to predicate register.3 4define i32 @compare1(i32 %a, i32 %b) nounwind {5; CHECK: p{{[0-3]}} = {{!?}}cmp.eq(r{{[0-9]+}},r{{[0-9]+}})6entry:7 %cmp = icmp ne i32 %a, %b8 %add = add nsw i32 %a, %b9 %sub = sub nsw i32 %a, %b10 %add.sub = select i1 %cmp, i32 %add, i32 %sub11 ret i32 %add.sub12}13 14define i32 @compare2(i32 %a) nounwind {15; CHECK: p{{[0-3]}} = {{!?}}cmp.eq(r{{[0-9]+}},#10)16entry:17 %cmp = icmp ne i32 %a, 1018 %add = add nsw i32 %a, 1019 %sub = sub nsw i32 %a, 1020 %add.sub = select i1 %cmp, i32 %add, i32 %sub21 ret i32 %add.sub22}23 24define i32 @compare3(i32 %a, i32 %b) nounwind {25; CHECK: p{{[0-3]}} = cmp.gt(r{{[0-9]+}},r{{[0-9]+}})26entry:27 %cmp = icmp sgt i32 %a, %b28 %sub = sub nsw i32 %a, %b29 %add = add nsw i32 %a, %b30 %sub.add = select i1 %cmp, i32 %sub, i32 %add31 ret i32 %sub.add32}33 34define i32 @compare4(i32 %a) nounwind {35; CHECK: p{{[0-3]}} = cmp.gt(r{{[0-9]+}},#10)36entry:37 %cmp = icmp sgt i32 %a, 1038 %sub = sub nsw i32 %a, 1039 %add = add nsw i32 %a, 1040 %sub.add = select i1 %cmp, i32 %sub, i32 %add41 ret i32 %sub.add42}43 44