Text file src/cmd/internal/obj/riscv/testdata/testminmax/minmax_test.s

     1  // Copyright 2025 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  //go:build riscv64
     6  
     7  #include "textflag.h"
     8  
     9  // func testMIN1(a int64) (r int64)
    10  TEXT ·testMIN1(SB),NOSPLIT,$0-16
    11  	MOV	a+0(FP), X5
    12  	MIN	X5, X5, X6
    13  	MOV	X6, r+8(FP)
    14  	RET
    15  
    16  // func testMIN2(a, b int64) (r int64)
    17  TEXT ·testMIN2(SB),NOSPLIT,$0-24
    18  	MOV	a+0(FP), X5
    19  	MOV	b+8(FP), X6
    20  	MIN	X5, X6, X6
    21  	MOV	X6, r+16(FP)
    22  	RET
    23  
    24  // func testMIN3(a, b int64) (r int64)
    25  TEXT ·testMIN3(SB),NOSPLIT,$0-24
    26  	MOV	a+0(FP), X5
    27  	MOV	b+8(FP), X6
    28  	MIN	X6, X5, X5
    29  	MOV	X5, r+16(FP)
    30  	RET
    31  
    32  // func testMIN4(a, b int64) (r int64)
    33  TEXT ·testMIN4(SB),NOSPLIT,$0-24
    34  	MOV	a+0(FP), X5
    35  	MOV	b+8(FP), X6
    36  	MIN	X5, X6, X7
    37  	MOV	X7, r+16(FP)
    38  	RET
    39  
    40  // func testMAX1(a int64) (r int64)
    41  TEXT ·testMAX1(SB),NOSPLIT,$0-16
    42  	MOV	a+0(FP), X5
    43  	MAX	X5, X5, X6
    44  	MOV	X6, r+8(FP)
    45  	RET
    46  
    47  // func testMAX2(a, b int64) (r int64)
    48  TEXT ·testMAX2(SB),NOSPLIT,$0-24
    49  	MOV	a+0(FP), X5
    50  	MOV	b+8(FP), X6
    51  	MAX	X5, X6, X6
    52  	MOV	X6, r+16(FP)
    53  	RET
    54  
    55  // func testMAX3(a, b int64) (r int64)
    56  TEXT ·testMAX3(SB),NOSPLIT,$0-24
    57  	MOV	a+0(FP), X5
    58  	MOV	b+8(FP), X6
    59  	MAX	X6, X5, X5
    60  	MOV	X5, r+16(FP)
    61  	RET
    62  
    63  // func testMAX4(a, b int64) (r int64)
    64  TEXT ·testMAX4(SB),NOSPLIT,$0-24
    65  	MOV	a+0(FP), X5
    66  	MOV	b+8(FP), X6
    67  	MAX	X5, X6, X7
    68  	MOV	X7, r+16(FP)
    69  	RET
    70  
    71  // func testMINU1(a int64) (r int64)
    72  TEXT ·testMINU1(SB),NOSPLIT,$0-16
    73  	MOV	a+0(FP), X5
    74  	MINU	X5, X5, X6
    75  	MOV	X6, r+8(FP)
    76  	RET
    77  
    78  // func testMINU2(a, b int64) (r int64)
    79  TEXT ·testMINU2(SB),NOSPLIT,$0-24
    80  	MOV	a+0(FP), X5
    81  	MOV	b+8(FP), X6
    82  	MINU	X5, X6, X6
    83  	MOV	X6, r+16(FP)
    84  	RET
    85  
    86  // func testMINU3(a, b int64) (r int64)
    87  TEXT ·testMINU3(SB),NOSPLIT,$0-24
    88  	MOV	a+0(FP), X5
    89  	MOV	b+8(FP), X6
    90  	MINU	X6, X5, X5
    91  	MOV	X5, r+16(FP)
    92  	RET
    93  
    94  // func testMINU4(a, b int64) (r int64)
    95  TEXT ·testMINU4(SB),NOSPLIT,$0-24
    96  	MOV	a+0(FP), X5
    97  	MOV	b+8(FP), X6
    98  	MINU	X5, X6, X7
    99  	MOV	X7, r+16(FP)
   100  	RET
   101  
   102  // func testMAXU1(a int64) (r int64)
   103  TEXT ·testMAXU1(SB),NOSPLIT,$0-16
   104  	MOV	a+0(FP), X5
   105  	MAXU	X5, X5, X6
   106  	MOV	X6, r+8(FP)
   107  	RET
   108  
   109  // func testMAXU2(a, b int64) (r int64)
   110  TEXT ·testMAXU2(SB),NOSPLIT,$0-24
   111  	MOV	a+0(FP), X5
   112  	MOV	b+8(FP), X6
   113  	MAXU	X5, X6, X6
   114  	MOV	X6, r+16(FP)
   115  	RET
   116  
   117  // func testMAXU3(a, b int64) (r int64)
   118  TEXT ·testMAXU3(SB),NOSPLIT,$0-24
   119  	MOV	a+0(FP), X5
   120  	MOV	b+8(FP), X6
   121  	MAXU	X6, X5, X5
   122  	MOV	X5, r+16(FP)
   123  	RET
   124  
   125  // func testMAXU4(a, b int64) (r int64)
   126  TEXT ·testMAXU4(SB),NOSPLIT,$0-24
   127  	MOV	a+0(FP), X5
   128  	MOV	b+8(FP), X6
   129  	MAXU	X5, X6, X7
   130  	MOV	X7, r+16(FP)
   131  	RET
   132  

View as plain text