brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 5870ca0 Raw
137 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -mtriple=riscv32 -global-isel -stop-after=irtranslator -verify-machineinstrs < %s \3; RUN:   | FileCheck -check-prefix=RV32I %s4; RUN: llc -mtriple=riscv64 -global-isel -stop-after=irtranslator -verify-machineinstrs < %s \5; RUN:   | FileCheck -check-prefix=RV64I %s6 7define void @test_ret_void() {8  ; RV32I-LABEL: name: test_ret_void9  ; RV32I: bb.1.entry:10  ; RV32I-NEXT:   PseudoRET11  ; RV64I-LABEL: name: test_ret_void12  ; RV64I: bb.1.entry:13  ; RV64I-NEXT:   PseudoRET14entry:15  ret void16}17 18define i8 @test_ret_i8() {19  ; RV32I-LABEL: name: test_ret_i820  ; RV32I: bb.1.entry:21  ; RV32I-NEXT:   [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 122  ; RV32I-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[C]](s8)23  ; RV32I-NEXT:   $x10 = COPY [[ANYEXT]](s32)24  ; RV32I-NEXT:   PseudoRET implicit $x1025  ; RV64I-LABEL: name: test_ret_i826  ; RV64I: bb.1.entry:27  ; RV64I-NEXT:   [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 128  ; RV64I-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[C]](s8)29  ; RV64I-NEXT:   $x10 = COPY [[ANYEXT]](s64)30  ; RV64I-NEXT:   PseudoRET implicit $x1031entry:32  ret i8 133}34 35define zeroext i8 @test_ret_i8_zext() {36  ; RV32I-LABEL: name: test_ret_i8_zext37  ; RV32I: bb.1.entry:38  ; RV32I-NEXT:   [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 139  ; RV32I-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[C]](s8)40  ; RV32I-NEXT:   $x10 = COPY [[ZEXT]](s32)41  ; RV32I-NEXT:   PseudoRET implicit $x1042  ; RV64I-LABEL: name: test_ret_i8_zext43  ; RV64I: bb.1.entry:44  ; RV64I-NEXT:   [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 145  ; RV64I-NEXT:   [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[C]](s8)46  ; RV64I-NEXT:   $x10 = COPY [[ZEXT]](s64)47  ; RV64I-NEXT:   PseudoRET implicit $x1048entry:49  ret i8 150}51 52define signext i16 @test_ret_i16_sext() {53  ; RV32I-LABEL: name: test_ret_i16_sext54  ; RV32I: bb.1.entry:55  ; RV32I-NEXT:   [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 156  ; RV32I-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[C]](s16)57  ; RV32I-NEXT:   $x10 = COPY [[SEXT]](s32)58  ; RV32I-NEXT:   PseudoRET implicit $x1059  ; RV64I-LABEL: name: test_ret_i16_sext60  ; RV64I: bb.1.entry:61  ; RV64I-NEXT:   [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 162  ; RV64I-NEXT:   [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[C]](s16)63  ; RV64I-NEXT:   $x10 = COPY [[SEXT]](s64)64  ; RV64I-NEXT:   PseudoRET implicit $x1065entry:66  ret i16 167}68 69define i32 @test_ret_i32() {70  ; RV32I-LABEL: name: test_ret_i3271  ; RV32I: bb.1.entry:72  ; RV32I-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 173  ; RV32I-NEXT:   $x10 = COPY [[C]](s32)74  ; RV32I-NEXT:   PseudoRET implicit $x1075  ; RV64I-LABEL: name: test_ret_i3276  ; RV64I: bb.1.entry:77  ; RV64I-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 178  ; RV64I-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[C]](s32)79  ; RV64I-NEXT:   $x10 = COPY [[ANYEXT]](s64)80  ; RV64I-NEXT:   PseudoRET implicit $x1081entry:82  ret i32 183}84 85define i64 @test_ret_i64() {86  ; RV32I-LABEL: name: test_ret_i6487  ; RV32I: bb.1.entry:88  ; RV32I-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 429496729689  ; RV32I-NEXT:   [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[C]](s64)90  ; RV32I-NEXT:   $x10 = COPY [[UV]](s32)91  ; RV32I-NEXT:   $x11 = COPY [[UV1]](s32)92  ; RV32I-NEXT:   PseudoRET implicit $x10, implicit $x1193  ; RV64I-LABEL: name: test_ret_i6494  ; RV64I: bb.1.entry:95  ; RV64I-NEXT:   [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 429496729696  ; RV64I-NEXT:   $x10 = COPY [[C]](s64)97  ; RV64I-NEXT:   PseudoRET implicit $x1098entry:99  ret i64 4294967296100}101 102define ptr @test_ret_ptr() {103  ; RV32I-LABEL: name: test_ret_ptr104  ; RV32I: bb.1.entry:105  ; RV32I-NEXT:   [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF106  ; RV32I-NEXT:   $x10 = COPY [[DEF]](p0)107  ; RV32I-NEXT:   PseudoRET implicit $x10108  ; RV64I-LABEL: name: test_ret_ptr109  ; RV64I: bb.1.entry:110  ; RV64I-NEXT:   [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF111  ; RV64I-NEXT:   $x10 = COPY [[DEF]](p0)112  ; RV64I-NEXT:   PseudoRET implicit $x10113entry:114  ret ptr poison115}116 117define [2 x i32] @test_ret_2xi32() {118  ; RV32I-LABEL: name: test_ret_2xi32119  ; RV32I: bb.1.entry:120  ; RV32I-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1121  ; RV32I-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2122  ; RV32I-NEXT:   $x10 = COPY [[C]](s32)123  ; RV32I-NEXT:   $x11 = COPY [[C1]](s32)124  ; RV32I-NEXT:   PseudoRET implicit $x10, implicit $x11125  ; RV64I-LABEL: name: test_ret_2xi32126  ; RV64I: bb.1.entry:127  ; RV64I-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1128  ; RV64I-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2129  ; RV64I-NEXT:   [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[C]](s32)130  ; RV64I-NEXT:   [[ANYEXT1:%[0-9]+]]:_(s64) = G_ANYEXT [[C1]](s32)131  ; RV64I-NEXT:   $x10 = COPY [[ANYEXT]](s64)132  ; RV64I-NEXT:   $x11 = COPY [[ANYEXT1]](s64)133  ; RV64I-NEXT:   PseudoRET implicit $x10, implicit $x11134entry:135  ret [2 x i32] [i32 1, i32 2]136}137