195 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4---5name: const_i86body: |7 bb.0.entry:8 ; CHECK-LABEL: name: const_i89 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -12710 ; CHECK-NEXT: $x10 = COPY [[C]](s64)11 ; CHECK-NEXT: PseudoRET implicit $x1012 %0:_(s8) = G_CONSTANT i8 12913 %1:_(s64) = G_ANYEXT %0(s8)14 $x10 = COPY %1(s64)15 PseudoRET implicit $x1016 17...18---19name: const_i1520body: |21 bb.0.entry:22 ; CHECK-LABEL: name: const_i1523 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1524 ; CHECK-NEXT: $x10 = COPY [[C]](s64)25 ; CHECK-NEXT: PseudoRET implicit $x1026 %0:_(s15) = G_CONSTANT i15 1527 %1:_(s64) = G_ANYEXT %0(s15)28 $x10 = COPY %1(s64)29 PseudoRET implicit $x1030 31...32---33name: const_i1634body: |35 bb.0.entry:36 ; CHECK-LABEL: name: const_i1637 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 76738 ; CHECK-NEXT: $x10 = COPY [[C]](s64)39 ; CHECK-NEXT: PseudoRET implicit $x1040 %0:_(s16) = G_CONSTANT i16 -6476941 %1:_(s64) = G_ANYEXT %0(s16)42 $x10 = COPY %1(s64)43 PseudoRET implicit $x1044 45...46---47name: const_i3248body: |49 bb.0.entry:50 ; CHECK-LABEL: name: const_i3251 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -6476952 ; CHECK-NEXT: $x10 = COPY [[C]](s64)53 ; CHECK-NEXT: PseudoRET implicit $x1054 %0:_(s32) = G_CONSTANT i32 -6476955 %1:_(s64) = G_ANYEXT %0(s32)56 $x10 = COPY %1(s64)57 PseudoRET implicit $x1058 59...60---61name: const_i6462body: |63 bb.0.entry:64 ; CHECK-LABEL: name: const_i6465 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 214748364966 ; CHECK-NEXT: $x10 = COPY [[C]](s64)67 ; CHECK-NEXT: PseudoRET implicit $x1068 %0:_(s64) = G_CONSTANT i64 214748364969 $x10 = COPY %0(s64)70 PseudoRET implicit $x1071 72...73---74name: const_i7275body: |76 bb.0.entry:77 ; CHECK-LABEL: name: const_i7278 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -214748364931279 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -180 ; CHECK-NEXT: $x10 = COPY [[C]](s64)81 ; CHECK-NEXT: $x11 = COPY [[C1]](s64)82 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1183 %0:_(s72) = G_CONSTANT i72 -214748364931284 %1:_(s128) = G_ANYEXT %0(s72)85 %2:_(s64), %3:_(s64) = G_UNMERGE_VALUES %1(s128)86 $x10 = COPY %2(s64)87 $x11 = COPY %3(s64)88 PseudoRET implicit $x10, implicit $x1189 90...91---92name: const_i12893body: |94 bb.0.entry:95 ; CHECK-LABEL: name: const_i12896 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 2147483128997 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 098 ; CHECK-NEXT: $x10 = COPY [[C]](s64)99 ; CHECK-NEXT: $x11 = COPY [[C1]](s64)100 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11101 %0:_(s128) = G_CONSTANT i128 21474831289102 %1:_(s64), %2:_(s64) = G_UNMERGE_VALUES %0(s128)103 $x10 = COPY %1(s64)104 $x11 = COPY %2(s64)105 PseudoRET implicit $x10, implicit $x11106 107...108---109name: const_i192110body: |111 bb.0.entry:112 ; CHECK-LABEL: name: const_i192113 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -214772364921114 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1115 ; CHECK-NEXT: $x10 = COPY [[C]](s64)116 ; CHECK-NEXT: $x11 = COPY [[C1]](s64)117 ; CHECK-NEXT: $x12 = COPY [[C1]](s64)118 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12119 %0:_(s192) = G_CONSTANT i192 -214772364921120 %1:_(s64), %2:_(s64), %3:_(s64) = G_UNMERGE_VALUES %0(s192)121 $x10 = COPY %1(s64)122 $x11 = COPY %2(s64)123 $x12 = COPY %3(s64)124 PseudoRET implicit $x10, implicit $x11, implicit $x12125 126...127---128name: const_null129body: |130 bb.0.entry:131 ; CHECK-LABEL: name: const_null132 ; CHECK: [[C:%[0-9]+]]:_(p0) = G_CONSTANT i64 0133 ; CHECK-NEXT: $x10 = COPY [[C]](p0)134 ; CHECK-NEXT: PseudoRET implicit $x10135 %0:_(p0) = G_CONSTANT i64 0136 $x10 = COPY %0(p0)137 PseudoRET implicit $x10138 139...140---141name: const_add_i32142body: |143 bb.0.entry:144 ; CHECK-LABEL: name: const_add_i32145 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -64769146 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10147 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[C]]148 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ADD]], 32149 ; CHECK-NEXT: $x10 = COPY [[SEXT_INREG]](s64)150 ; CHECK-NEXT: PseudoRET implicit $x10151 %0:_(s32) = G_CONSTANT i32 -64769152 %1:_(s64) = COPY $x10153 %2:_(s32) = G_TRUNC %1(s64)154 %3:_(s32) = G_ADD %2, %0155 %4:_(s64) = G_ANYEXT %3(s32)156 $x10 = COPY %4(s64)157 PseudoRET implicit $x10158 159...160---161name: const_add_i8162body: |163 bb.0.entry:164 ; CHECK-LABEL: name: const_add_i8165 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1166 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10167 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[C]]168 ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)169 ; CHECK-NEXT: PseudoRET implicit $x10170 %0:_(s8) = G_CONSTANT i8 1171 %1:_(s64) = COPY $x10172 %2:_(s8) = G_TRUNC %1(s64)173 %3:_(s8) = G_ADD %2, %0174 %4:_(s64) = G_ANYEXT %3(s8)175 $x10 = COPY %4(s64)176 PseudoRET implicit $x10177 178...179 180...181---182name: constant_pool_i64183body: |184 bb.0.entry:185 ; CHECK-LABEL: name: constant_pool_i64186 ; CHECK: [[CONSTANT_POOL:%[0-9]+]]:_(p0) = G_CONSTANT_POOL %const.0187 ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[CONSTANT_POOL]](p0) :: (load (s64) from constant-pool)188 ; CHECK-NEXT: $x10 = COPY [[LOAD]](s64)189 ; CHECK-NEXT: PseudoRET implicit $x10190 %0:_(s64) = G_CONSTANT i64 -1085102592571150096191 $x10 = COPY %0(s64)192 PseudoRET implicit $x10193 194...195