162 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22# REQUIRES: asserts3# RUN: llc %s -o - -mtriple=riscv32 -mattr=+zcmp -target-abi ilp32 -run-pass=prologepilog \4# RUN: -simplify-mir -verify-machineinstrs | FileCheck %s5 6--- |7 define hidden void @f(fp128 %a) local_unnamed_addr #0 {8 entry:9 %0 = bitcast fp128 %a to i12810 %and.i = lshr i128 %0, 11211 %1 = trunc i128 %and.i to i3212 %2 = and i32 %1, 3276713 %or.i = or i128 poison, 519229685853482762853049632922009614 br label %if.end.i15 16 if.end.i: ; preds = %entry17 br i1 poison, label %exit, label %if.then12.i18 19 if.then12.i: ; preds = %if.end.i20 %sub13.i = sub nuw nsw i32 16495, %221 %sh_prom.i = zext i32 %sub13.i to i12822 %shr14.i = lshr i128 %or.i, %sh_prom.i23 %conv15.i = trunc i128 %shr14.i to i3224 br label %exit25 26 exit: ; preds = %if.then12.i, %if.end.i27 %retval.0.i = phi i32 [ %conv15.i, %if.then12.i ], [ -1, %if.end.i ]28 ret void29 }30...31---32name: f33alignment: 234tracksRegLiveness: true35tracksDebugUserValues: true36liveins:37 - { reg: '$x10' }38frameInfo:39 maxAlignment: 140 localFrameSize: 3241 savePoint:42 - point: '%bb.2'43 restorePoint:44 - point: '%bb.2'45stack:46 - { id: 0, size: 32, alignment: 1, local-offset: -32 }47machineFunctionInfo:48 varArgsFrameIndex: 049 varArgsSaveSize: 050body: |51 ; CHECK-LABEL: name: f52 ; CHECK: bb.0.entry:53 ; CHECK-NEXT: liveins: $x1054 ; CHECK-NEXT: {{ $}}55 ; CHECK-NEXT: renamable $x10 = ADDI $x0, -156 ; CHECK-NEXT: {{ $}}57 ; CHECK-NEXT: bb.1.if.end.i:58 ; CHECK-NEXT: liveins: $x1059 ; CHECK-NEXT: {{ $}}60 ; CHECK-NEXT: BNE $x0, $x0, %bb.361 ; CHECK-NEXT: PseudoBR %bb.262 ; CHECK-NEXT: {{ $}}63 ; CHECK-NEXT: bb.2.if.then12.i:64 ; CHECK-NEXT: liveins: $x1065 ; CHECK-NEXT: {{ $}}66 ; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -3267 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 3268 ; CHECK-NEXT: SB $x0, $x2, 31 :: (store (s8) into %stack.0 + 31)69 ; CHECK-NEXT: SB $x0, $x2, 30 :: (store (s8) into %stack.0 + 30)70 ; CHECK-NEXT: SB $x0, $x2, 29 :: (store (s8) into %stack.0 + 29)71 ; CHECK-NEXT: SB $x0, $x2, 28 :: (store (s8) into %stack.0 + 28)72 ; CHECK-NEXT: SB $x0, $x2, 27 :: (store (s8) into %stack.0 + 27)73 ; CHECK-NEXT: SB $x0, $x2, 26 :: (store (s8) into %stack.0 + 26)74 ; CHECK-NEXT: SB $x0, $x2, 25 :: (store (s8) into %stack.0 + 25)75 ; CHECK-NEXT: SB $x0, $x2, 24 :: (store (s8) into %stack.0 + 24)76 ; CHECK-NEXT: SB $x0, $x2, 23 :: (store (s8) into %stack.0 + 23)77 ; CHECK-NEXT: SB $x0, $x2, 22 :: (store (s8) into %stack.0 + 22)78 ; CHECK-NEXT: SB $x0, $x2, 21 :: (store (s8) into %stack.0 + 21)79 ; CHECK-NEXT: SB $x0, $x2, 20 :: (store (s8) into %stack.0 + 20)80 ; CHECK-NEXT: SB $x0, $x2, 19 :: (store (s8) into %stack.0 + 19)81 ; CHECK-NEXT: SB $x0, $x2, 18 :: (store (s8) into %stack.0 + 18)82 ; CHECK-NEXT: SB $x0, $x2, 17 :: (store (s8) into %stack.0 + 17)83 ; CHECK-NEXT: SB $x0, $x2, 16 :: (store (s8) into %stack.0 + 16)84 ; CHECK-NEXT: SB renamable $x10, $x2, 0 :: (store (s8) into %stack.0)85 ; CHECK-NEXT: SB renamable $x10, $x2, 4 :: (store (s8) into %stack.0 + 4)86 ; CHECK-NEXT: renamable $x11 = SRLI renamable $x10, 2487 ; CHECK-NEXT: SB renamable $x11, $x2, 3 :: (store (s8) into %stack.0 + 3)88 ; CHECK-NEXT: renamable $x12 = SRLI renamable $x10, 1689 ; CHECK-NEXT: SB renamable $x12, $x2, 2 :: (store (s8) into %stack.0 + 2)90 ; CHECK-NEXT: renamable $x13 = SRLI renamable $x10, 891 ; CHECK-NEXT: SB renamable $x13, $x2, 1 :: (store (s8) into %stack.0 + 1)92 ; CHECK-NEXT: SB renamable $x10, $x2, 8 :: (store (s8) into %stack.0 + 8)93 ; CHECK-NEXT: SB renamable $x11, $x2, 7 :: (store (s8) into %stack.0 + 7)94 ; CHECK-NEXT: SB renamable $x12, $x2, 6 :: (store (s8) into %stack.0 + 6)95 ; CHECK-NEXT: SB renamable $x13, $x2, 5 :: (store (s8) into %stack.0 + 5)96 ; CHECK-NEXT: SB killed renamable $x10, $x2, 12 :: (store (s8) into %stack.0 + 12)97 ; CHECK-NEXT: SB renamable $x11, $x2, 11 :: (store (s8) into %stack.0 + 11)98 ; CHECK-NEXT: SB renamable $x12, $x2, 10 :: (store (s8) into %stack.0 + 10)99 ; CHECK-NEXT: SB renamable $x13, $x2, 9 :: (store (s8) into %stack.0 + 9)100 ; CHECK-NEXT: SB killed renamable $x11, $x2, 15 :: (store (s8) into %stack.0 + 15)101 ; CHECK-NEXT: SB killed renamable $x12, $x2, 14 :: (store (s8) into %stack.0 + 14)102 ; CHECK-NEXT: SB killed renamable $x13, $x2, 13 :: (store (s8) into %stack.0 + 13)103 ; CHECK-NEXT: $x2 = frame-destroy ADDI $x2, 32104 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0105 ; CHECK-NEXT: {{ $}}106 ; CHECK-NEXT: bb.3.exit:107 ; CHECK-NEXT: PseudoRET108 bb.0.entry:109 liveins: $x10110 111 renamable $x10 = ADDI $x0, -1112 113 bb.1.if.end.i:114 liveins: $x10115 116 BNE $x0, $x0, %bb.3117 PseudoBR %bb.2118 119 bb.2.if.then12.i:120 liveins: $x10121 122 SB $x0, %stack.0, 31 :: (store (s8) into %stack.0 + 31)123 SB $x0, %stack.0, 30 :: (store (s8) into %stack.0 + 30)124 SB $x0, %stack.0, 29 :: (store (s8) into %stack.0 + 29)125 SB $x0, %stack.0, 28 :: (store (s8) into %stack.0 + 28)126 SB $x0, %stack.0, 27 :: (store (s8) into %stack.0 + 27)127 SB $x0, %stack.0, 26 :: (store (s8) into %stack.0 + 26)128 SB $x0, %stack.0, 25 :: (store (s8) into %stack.0 + 25)129 SB $x0, %stack.0, 24 :: (store (s8) into %stack.0 + 24)130 SB $x0, %stack.0, 23 :: (store (s8) into %stack.0 + 23)131 SB $x0, %stack.0, 22 :: (store (s8) into %stack.0 + 22)132 SB $x0, %stack.0, 21 :: (store (s8) into %stack.0 + 21)133 SB $x0, %stack.0, 20 :: (store (s8) into %stack.0 + 20)134 SB $x0, %stack.0, 19 :: (store (s8) into %stack.0 + 19)135 SB $x0, %stack.0, 18 :: (store (s8) into %stack.0 + 18)136 SB $x0, %stack.0, 17 :: (store (s8) into %stack.0 + 17)137 SB $x0, %stack.0, 16 :: (store (s8) into %stack.0 + 16)138 SB renamable $x10, %stack.0, 0 :: (store (s8) into %stack.0)139 SB renamable $x10, %stack.0, 4 :: (store (s8) into %stack.0 + 4)140 renamable $x11 = SRLI renamable $x10, 24141 SB renamable $x11, %stack.0, 3 :: (store (s8) into %stack.0 + 3)142 renamable $x12 = SRLI renamable $x10, 16143 SB renamable $x12, %stack.0, 2 :: (store (s8) into %stack.0 + 2)144 renamable $x13 = SRLI renamable $x10, 8145 SB renamable $x13, %stack.0, 1 :: (store (s8) into %stack.0 + 1)146 SB renamable $x10, %stack.0, 8 :: (store (s8) into %stack.0 + 8)147 SB renamable $x11, %stack.0, 7 :: (store (s8) into %stack.0 + 7)148 SB renamable $x12, %stack.0, 6 :: (store (s8) into %stack.0 + 6)149 SB renamable $x13, %stack.0, 5 :: (store (s8) into %stack.0 + 5)150 SB killed renamable $x10, %stack.0, 12 :: (store (s8) into %stack.0 + 12)151 SB renamable $x11, %stack.0, 11 :: (store (s8) into %stack.0 + 11)152 SB renamable $x12, %stack.0, 10 :: (store (s8) into %stack.0 + 10)153 SB renamable $x13, %stack.0, 9 :: (store (s8) into %stack.0 + 9)154 SB killed renamable $x11, %stack.0, 15 :: (store (s8) into %stack.0 + 15)155 SB killed renamable $x12, %stack.0, 14 :: (store (s8) into %stack.0 + 14)156 SB killed renamable $x13, %stack.0, 13 :: (store (s8) into %stack.0 + 13)157 158 bb.3.exit:159 PseudoRET160 161...162