brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.7 KiB · db558df Raw
179 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32FP323# RUN: llc -O0 -mtriple=mipsel-linux-gnu -mattr=+fp64,+mips32r2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32FP644--- |5 6  define void @select_i32() {entry: ret void}7  define void @select_ptr() {entry: ret void}8  define void @select_float() {entry: ret void}9  define void @select_double() {entry: ret void}10 11...12---13name:            select_i3214alignment:       415legalized:       true16regBankSelected: true17tracksRegLiveness: true18body:             |19  bb.1.entry:20    liveins: $a0, $a1, $a221 22    ; MIPS32FP32-LABEL: name: select_i3223    ; MIPS32FP32: liveins: $a0, $a1, $a224    ; MIPS32FP32: [[COPY:%[0-9]+]]:gpr32 = COPY $a025    ; MIPS32FP32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a126    ; MIPS32FP32: [[COPY2:%[0-9]+]]:gpr32 = COPY $a227    ; MIPS32FP32: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[COPY]], 128    ; MIPS32FP32: [[MOVN_I_I:%[0-9]+]]:gpr32 = MOVN_I_I [[COPY1]], [[ANDi]], [[COPY2]]29    ; MIPS32FP32: $v0 = COPY [[MOVN_I_I]]30    ; MIPS32FP32: RetRA implicit $v031    ; MIPS32FP64-LABEL: name: select_i3232    ; MIPS32FP64: liveins: $a0, $a1, $a233    ; MIPS32FP64: [[COPY:%[0-9]+]]:gpr32 = COPY $a034    ; MIPS32FP64: [[COPY1:%[0-9]+]]:gpr32 = COPY $a135    ; MIPS32FP64: [[COPY2:%[0-9]+]]:gpr32 = COPY $a236    ; MIPS32FP64: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[COPY]], 137    ; MIPS32FP64: [[MOVN_I_I:%[0-9]+]]:gpr32 = MOVN_I_I [[COPY1]], [[ANDi]], [[COPY2]]38    ; MIPS32FP64: $v0 = COPY [[MOVN_I_I]]39    ; MIPS32FP64: RetRA implicit $v040    %3:gprb(s32) = COPY $a041    %1:gprb(s32) = COPY $a142    %2:gprb(s32) = COPY $a243    %6:gprb(s32) = G_CONSTANT i32 144    %7:gprb(s32) = COPY %3(s32)45    %5:gprb(s32) = G_AND %7, %646    %4:gprb(s32) = G_SELECT %5(s32), %1, %247    $v0 = COPY %4(s32)48    RetRA implicit $v049 50...51---52name:            select_ptr53alignment:       454legalized:       true55regBankSelected: true56tracksRegLiveness: true57body:             |58  bb.1.entry:59    liveins: $a0, $a1, $a260 61    ; MIPS32FP32-LABEL: name: select_ptr62    ; MIPS32FP32: liveins: $a0, $a1, $a263    ; MIPS32FP32: [[COPY:%[0-9]+]]:gpr32 = COPY $a064    ; MIPS32FP32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a165    ; MIPS32FP32: [[COPY2:%[0-9]+]]:gpr32 = COPY $a266    ; MIPS32FP32: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[COPY]], 167    ; MIPS32FP32: [[MOVN_I_I:%[0-9]+]]:gpr32 = MOVN_I_I [[COPY1]], [[ANDi]], [[COPY2]]68    ; MIPS32FP32: $v0 = COPY [[MOVN_I_I]]69    ; MIPS32FP32: RetRA implicit $v070    ; MIPS32FP64-LABEL: name: select_ptr71    ; MIPS32FP64: liveins: $a0, $a1, $a272    ; MIPS32FP64: [[COPY:%[0-9]+]]:gpr32 = COPY $a073    ; MIPS32FP64: [[COPY1:%[0-9]+]]:gpr32 = COPY $a174    ; MIPS32FP64: [[COPY2:%[0-9]+]]:gpr32 = COPY $a275    ; MIPS32FP64: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[COPY]], 176    ; MIPS32FP64: [[MOVN_I_I:%[0-9]+]]:gpr32 = MOVN_I_I [[COPY1]], [[ANDi]], [[COPY2]]77    ; MIPS32FP64: $v0 = COPY [[MOVN_I_I]]78    ; MIPS32FP64: RetRA implicit $v079    %3:gprb(s32) = COPY $a080    %1:gprb(p0) = COPY $a181    %2:gprb(p0) = COPY $a282    %6:gprb(s32) = G_CONSTANT i32 183    %7:gprb(s32) = COPY %3(s32)84    %5:gprb(s32) = G_AND %7, %685    %4:gprb(p0) = G_SELECT %5(s32), %1, %286    $v0 = COPY %4(p0)87    RetRA implicit $v088 89...90---91name:            select_float92alignment:       493legalized:       true94regBankSelected: true95tracksRegLiveness: true96body:             |97  bb.1.entry:98    liveins: $a0, $a1, $a299 100    ; MIPS32FP32-LABEL: name: select_float101    ; MIPS32FP32: liveins: $a0, $a1, $a2102    ; MIPS32FP32: [[COPY:%[0-9]+]]:gpr32 = COPY $a0103    ; MIPS32FP32: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1104    ; MIPS32FP32: [[COPY2:%[0-9]+]]:gpr32 = COPY $a2105    ; MIPS32FP32: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[COPY]], 1106    ; MIPS32FP32: [[COPY3:%[0-9]+]]:fgr32 = COPY [[COPY1]]107    ; MIPS32FP32: [[COPY4:%[0-9]+]]:fgr32 = COPY [[COPY2]]108    ; MIPS32FP32: [[MOVN_I_S:%[0-9]+]]:fgr32 = MOVN_I_S [[COPY3]], [[ANDi]], [[COPY4]]109    ; MIPS32FP32: $f0 = COPY [[MOVN_I_S]]110    ; MIPS32FP32: RetRA implicit $f0111    ; MIPS32FP64-LABEL: name: select_float112    ; MIPS32FP64: liveins: $a0, $a1, $a2113    ; MIPS32FP64: [[COPY:%[0-9]+]]:gpr32 = COPY $a0114    ; MIPS32FP64: [[COPY1:%[0-9]+]]:gpr32 = COPY $a1115    ; MIPS32FP64: [[COPY2:%[0-9]+]]:gpr32 = COPY $a2116    ; MIPS32FP64: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[COPY]], 1117    ; MIPS32FP64: [[COPY3:%[0-9]+]]:fgr32 = COPY [[COPY1]]118    ; MIPS32FP64: [[COPY4:%[0-9]+]]:fgr32 = COPY [[COPY2]]119    ; MIPS32FP64: [[MOVN_I_S:%[0-9]+]]:fgr32 = MOVN_I_S [[COPY3]], [[ANDi]], [[COPY4]]120    ; MIPS32FP64: $f0 = COPY [[MOVN_I_S]]121    ; MIPS32FP64: RetRA implicit $f0122    %3:gprb(s32) = COPY $a0123    %1:gprb(s32) = COPY $a1124    %2:gprb(s32) = COPY $a2125    %6:gprb(s32) = G_CONSTANT i32 1126    %7:gprb(s32) = COPY %3(s32)127    %5:gprb(s32) = G_AND %7, %6128    %8:fprb(s32) = COPY %1(s32)129    %9:fprb(s32) = COPY %2(s32)130    %4:fprb(s32) = G_SELECT %5(s32), %8, %9131    $f0 = COPY %4(s32)132    RetRA implicit $f0133 134...135---136name:            select_double137alignment:       4138legalized:       true139regBankSelected: true140tracksRegLiveness: true141fixedStack:142  - { id: 0, offset: 16, size: 4, alignment: 8, isImmutable: true }143body:             |144  bb.1.entry:145    liveins: $d6, $d7146 147    ; MIPS32FP32-LABEL: name: select_double148    ; MIPS32FP32: liveins: $d6, $d7149    ; MIPS32FP32: [[COPY:%[0-9]+]]:afgr64 = COPY $d6150    ; MIPS32FP32: [[COPY1:%[0-9]+]]:afgr64 = COPY $d7151    ; MIPS32FP32: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu %fixed-stack.0, 0152    ; MIPS32FP32: [[LW:%[0-9]+]]:gpr32 = LW [[ADDiu]], 0 :: (load (s32) from %fixed-stack.0, align 8)153    ; MIPS32FP32: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[LW]], 1154    ; MIPS32FP32: [[MOVN_I_D32_:%[0-9]+]]:afgr64 = MOVN_I_D32 [[COPY]], [[ANDi]], [[COPY1]]155    ; MIPS32FP32: $d0 = COPY [[MOVN_I_D32_]]156    ; MIPS32FP32: RetRA implicit $d0157    ; MIPS32FP64-LABEL: name: select_double158    ; MIPS32FP64: liveins: $d6, $d7159    ; MIPS32FP64: [[COPY:%[0-9]+]]:fgr64 = COPY $d6160    ; MIPS32FP64: [[COPY1:%[0-9]+]]:fgr64 = COPY $d7161    ; MIPS32FP64: [[ADDiu:%[0-9]+]]:gpr32 = ADDiu %fixed-stack.0, 0162    ; MIPS32FP64: [[LW:%[0-9]+]]:gpr32 = LW [[ADDiu]], 0 :: (load (s32) from %fixed-stack.0, align 8)163    ; MIPS32FP64: [[ANDi:%[0-9]+]]:gpr32 = ANDi [[LW]], 1164    ; MIPS32FP64: [[MOVN_I_D64_:%[0-9]+]]:fgr64 = MOVN_I_D64 [[COPY]], [[ANDi]], [[COPY1]]165    ; MIPS32FP64: $d0 = COPY [[MOVN_I_D64_]]166    ; MIPS32FP64: RetRA implicit $d0167    %0:fprb(s64) = COPY $d6168    %1:fprb(s64) = COPY $d7169    %4:gprb(p0) = G_FRAME_INDEX %fixed-stack.0170    %3:gprb(s32) = G_LOAD %4(p0) :: (load (s32) from %fixed-stack.0, align 8)171    %7:gprb(s32) = G_CONSTANT i32 1172    %8:gprb(s32) = COPY %3(s32)173    %6:gprb(s32) = G_AND %8, %7174    %5:fprb(s64) = G_SELECT %6(s32), %0, %1175    $d0 = COPY %5(s64)176    RetRA implicit $d0177 178...179