[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Hexagon / sf-min-max.ll
blobe795cb42d6a2224abbf89da40d45b79098b2013a
1 ; RUN: llc -march=hexagon < %s | FileCheck %s
3 ; CHECK-LABEL: sf_min_olt:
4 ; CHECK: sfmin
5 define float @sf_min_olt(float %x, float %y) #0 {
6   %t = fcmp olt float %x, %y
7   %u = select i1 %t, float %x, float %y
8   ret float %u
11 ; CHECK-LABEL: sf_min_ole:
12 ; CHECK: sfmin
13 define float @sf_min_ole(float %x, float %y) #0 {
14   %t = fcmp ole float %x, %y
15   %u = select i1 %t, float %x, float %y
16   ret float %u
19 ; CHECK-LABEL: sf_max_ogt:
20 ; CHECK: sfmax
21 define float @sf_max_ogt(float %x, float %y) #0 {
22   %t = fcmp ogt float %x, %y
23   %u = select i1 %t, float %x, float %y
24   ret float %u
27 ; CHECK-LABEL: sf_max_oge:
28 ; CHECK: sfmax
29 define float @sf_max_oge(float %x, float %y) #0 {
30   %t = fcmp oge float %x, %y
31   %u = select i1 %t, float %x, float %y
32   ret float %u
35 ; CHECK-LABEL: sf_max_olt:
36 ; CHECK: sfmax
37 define float @sf_max_olt(float %x, float %y) #0 {
38   %t = fcmp olt float %x, %y
39   %u = select i1 %t, float %y, float %x
40   ret float %u
43 ; CHECK-LABEL: sf_max_ole:
44 ; CHECK: sfmax
45 define float @sf_max_ole(float %x, float %y) #0 {
46   %t = fcmp ole float %x, %y
47   %u = select i1 %t, float %y, float %x
48   ret float %u
51 ; CHECK-LABEL: sf_min_ogt:
52 ; CHECK: sfmin
53 define float @sf_min_ogt(float %x, float %y) #0 {
54   %t = fcmp ogt float %x, %y
55   %u = select i1 %t, float %y, float %x
56   ret float %u
59 ; CHECK-LABEL: sf_min_oge:
60 ; CHECK: sfmin
61 define float @sf_min_oge(float %x, float %y) #0 {
62   %t = fcmp oge float %x, %y
63   %u = select i1 %t, float %y, float %x
64   ret float %u
67 attributes #0 = { nounwind "target-cpu"="hexagonv5" }