xref: /llvm-project/llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/minmax-rv64.mir (revision 028ed6125fed8dedfc8f3fd90f37f7d7b28a3e34)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=riscv64 -mattr=+zbb -run-pass=instruction-select \
3# RUN:   -simplify-mir -verify-machineinstrs %s -o - \
4# RUN:   | FileCheck -check-prefix=RV64I %s
5
6---
7name:            smax_i64
8legalized:       true
9regBankSelected: true
10body:             |
11  bb.0.entry:
12    ; RV64I-LABEL: name: smax_i64
13    ; RV64I: [[COPY:%[0-9]+]]:gpr = COPY $x10
14    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
15    ; RV64I-NEXT: [[MAX:%[0-9]+]]:gpr = MAX [[COPY]], [[COPY1]]
16    ; RV64I-NEXT: $x10 = COPY [[MAX]]
17    ; RV64I-NEXT: PseudoRET implicit $x10
18    %0:gprb(s64) = COPY $x10
19    %1:gprb(s64) = COPY $x11
20    %2:gprb(s64) = G_SMAX %0, %1
21    $x10 = COPY %2(s64)
22    PseudoRET implicit $x10
23
24...
25---
26name:            smin_i64
27legalized:       true
28regBankSelected: true
29body:             |
30  bb.0.entry:
31    ; RV64I-LABEL: name: smin_i64
32    ; RV64I: [[COPY:%[0-9]+]]:gpr = COPY $x10
33    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
34    ; RV64I-NEXT: [[MIN:%[0-9]+]]:gpr = MIN [[COPY]], [[COPY1]]
35    ; RV64I-NEXT: $x10 = COPY [[MIN]]
36    ; RV64I-NEXT: PseudoRET implicit $x10
37    %0:gprb(s64) = COPY $x10
38    %1:gprb(s64) = COPY $x11
39    %2:gprb(s64) = G_SMIN %0, %1
40    $x10 = COPY %2(s64)
41    PseudoRET implicit $x10
42
43...
44---
45name:            umax_i64
46legalized:       true
47regBankSelected: true
48body:             |
49  bb.0.entry:
50    ; RV64I-LABEL: name: umax_i64
51    ; RV64I: [[COPY:%[0-9]+]]:gpr = COPY $x10
52    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
53    ; RV64I-NEXT: [[MAXU:%[0-9]+]]:gpr = MAXU [[COPY]], [[COPY1]]
54    ; RV64I-NEXT: $x10 = COPY [[MAXU]]
55    ; RV64I-NEXT: PseudoRET implicit $x10
56    %0:gprb(s64) = COPY $x10
57    %1:gprb(s64) = COPY $x11
58    %2:gprb(s64) = G_UMAX %0, %1
59    $x10 = COPY %2(s64)
60    PseudoRET implicit $x10
61
62...
63---
64name:            umin_i64
65legalized:       true
66regBankSelected: true
67body:             |
68  bb.0.entry:
69    ; RV64I-LABEL: name: umin_i64
70    ; RV64I: [[COPY:%[0-9]+]]:gpr = COPY $x10
71    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
72    ; RV64I-NEXT: [[MINU:%[0-9]+]]:gpr = MINU [[COPY]], [[COPY1]]
73    ; RV64I-NEXT: $x10 = COPY [[MINU]]
74    ; RV64I-NEXT: PseudoRET implicit $x10
75    %0:gprb(s64) = COPY $x10
76    %1:gprb(s64) = COPY $x11
77    %2:gprb(s64) = G_UMIN %0, %1
78    $x10 = COPY %2(s64)
79    PseudoRET implicit $x10
80
81...
82