brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.6 KiB · a0bf22d Raw
273 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS323--- |4 5  define void @select_i8() {entry: ret void}6  define void @select_i16() {entry: ret void}7  define void @select_i32() {entry: ret void}8  define void @select_ptr() {entry: ret void}9  define void @select_with_negation() {entry: ret void}10  define void @select_i64() {entry: ret void}11  define void @select_float() {entry: ret void}12  define void @select_double() {entry: ret void}13 14...15---16name:            select_i817alignment:       418tracksRegLiveness: true19body:             |20  bb.1.entry:21    liveins: $a0, $a1, $a222 23    ; MIPS32-LABEL: name: select_i824    ; MIPS32: liveins: $a0, $a1, $a225    ; MIPS32-NEXT: {{  $}}26    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a027    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a128    ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a229    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 130    ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]31    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s32), [[COPY1]], [[COPY2]]32    ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)33    ; MIPS32-NEXT: RetRA implicit $v034    %3:_(s32) = COPY $a035    %0:_(s1) = G_TRUNC %3(s32)36    %4:_(s32) = COPY $a137    %1:_(s8) = G_TRUNC %4(s32)38    %5:_(s32) = COPY $a239    %2:_(s8) = G_TRUNC %5(s32)40    %6:_(s8) = G_SELECT %0(s1), %1, %241    %7:_(s32) = G_ANYEXT %6(s8)42    $v0 = COPY %7(s32)43    RetRA implicit $v044 45...46---47name:            select_i1648alignment:       449tracksRegLiveness: true50body:             |51  bb.1.entry:52    liveins: $a0, $a1, $a253 54    ; MIPS32-LABEL: name: select_i1655    ; MIPS32: liveins: $a0, $a1, $a256    ; MIPS32-NEXT: {{  $}}57    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a058    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a159    ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a260    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 161    ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]62    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s32), [[COPY1]], [[COPY2]]63    ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)64    ; MIPS32-NEXT: RetRA implicit $v065    %3:_(s32) = COPY $a066    %0:_(s1) = G_TRUNC %3(s32)67    %4:_(s32) = COPY $a168    %1:_(s16) = G_TRUNC %4(s32)69    %5:_(s32) = COPY $a270    %2:_(s16) = G_TRUNC %5(s32)71    %6:_(s16) = G_SELECT %0(s1), %1, %272    %7:_(s32) = G_ANYEXT %6(s16)73    $v0 = COPY %7(s32)74    RetRA implicit $v075 76...77---78name:            select_i3279alignment:       480tracksRegLiveness: true81body:             |82  bb.1.entry:83    liveins: $a0, $a1, $a284 85    ; MIPS32-LABEL: name: select_i3286    ; MIPS32: liveins: $a0, $a1, $a287    ; MIPS32-NEXT: {{  $}}88    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a089    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a190    ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a291    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 192    ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]93    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s32), [[COPY1]], [[COPY2]]94    ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)95    ; MIPS32-NEXT: RetRA implicit $v096    %3:_(s32) = COPY $a097    %0:_(s1) = G_TRUNC %3(s32)98    %1:_(s32) = COPY $a199    %2:_(s32) = COPY $a2100    %4:_(s32) = G_SELECT %0(s1), %1, %2101    $v0 = COPY %4(s32)102    RetRA implicit $v0103 104...105---106name:            select_ptr107alignment:       4108tracksRegLiveness: true109body:             |110  bb.1.entry:111    liveins: $a0, $a1, $a2112 113    ; MIPS32-LABEL: name: select_ptr114    ; MIPS32: liveins: $a0, $a1, $a2115    ; MIPS32-NEXT: {{  $}}116    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0117    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1118    ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $a2119    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1120    ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]121    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(p0) = G_SELECT [[AND]](s32), [[COPY1]], [[COPY2]]122    ; MIPS32-NEXT: $v0 = COPY [[SELECT]](p0)123    ; MIPS32-NEXT: RetRA implicit $v0124    %3:_(s32) = COPY $a0125    %0:_(s1) = G_TRUNC %3(s32)126    %1:_(p0) = COPY $a1127    %2:_(p0) = COPY $a2128    %4:_(p0) = G_SELECT %0(s1), %1, %2129    $v0 = COPY %4(p0)130    RetRA implicit $v0131 132...133---134name:            select_with_negation135alignment:       4136tracksRegLiveness: true137body:             |138  bb.1.entry:139    liveins: $a0, $a1, $a2, $a3140 141    ; MIPS32-LABEL: name: select_with_negation142    ; MIPS32: liveins: $a0, $a1, $a2, $a3143    ; MIPS32-NEXT: {{  $}}144    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0145    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1146    ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2147    ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3148    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1149    ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY]](s32), [[COPY1]]150    ; MIPS32-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ICMP]], [[C]]151    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY2]], [[COPY3]]152    ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32)153    ; MIPS32-NEXT: RetRA implicit $v0154    %0:_(s32) = COPY $a0155    %1:_(s32) = COPY $a1156    %2:_(s32) = COPY $a2157    %3:_(s32) = COPY $a3158    %5:_(s1) = G_CONSTANT i1 true159    %4:_(s1) = G_ICMP intpred(slt), %0(s32), %1160    %6:_(s1) = G_XOR %4, %5161    %7:_(s32) = G_SELECT %6(s1), %2, %3162    $v0 = COPY %7(s32)163    RetRA implicit $v0164 165...166---167name:            select_i64168alignment:       4169tracksRegLiveness: true170fixedStack:171  - { id: 0, offset: 20, size: 4, alignment: 4, isImmutable: true }172  - { id: 1, offset: 16, size: 4, alignment: 8, isImmutable: true }173body:             |174  bb.1.entry:175    liveins: $a0, $a2, $a3176 177    ; MIPS32-LABEL: name: select_i64178    ; MIPS32: liveins: $a0, $a2, $a3179    ; MIPS32-NEXT: {{  $}}180    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0181    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a2182    ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a3183    ; MIPS32-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY1]](s32), [[COPY2]](s32)184    ; MIPS32-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0185    ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)186    ; MIPS32-NEXT: [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.1187    ; MIPS32-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (s32) from %fixed-stack.1)188    ; MIPS32-NEXT: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)189    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1190    ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]191    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[AND]](s32), [[MV]], [[MV1]]192    ; MIPS32-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SELECT]](s64)193    ; MIPS32-NEXT: $v0 = COPY [[UV]](s32)194    ; MIPS32-NEXT: $v1 = COPY [[UV1]](s32)195    ; MIPS32-NEXT: RetRA implicit $v0, implicit $v1196    %3:_(s32) = COPY $a0197    %0:_(s1) = G_TRUNC %3(s32)198    %4:_(s32) = COPY $a2199    %5:_(s32) = COPY $a3200    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)201    %8:_(p0) = G_FRAME_INDEX %fixed-stack.1202    %6:_(s32) = G_LOAD %8(p0) :: (load (s32) from %fixed-stack.1, align 8)203    %9:_(p0) = G_FRAME_INDEX %fixed-stack.0204    %7:_(s32) = G_LOAD %9(p0) :: (load (s32) from %fixed-stack.0)205    %2:_(s64) = G_MERGE_VALUES %6(s32), %7(s32)206    %10:_(s64) = G_SELECT %0(s1), %1, %2207    %11:_(s32), %12:_(s32) = G_UNMERGE_VALUES %10(s64)208    $v0 = COPY %11(s32)209    $v1 = COPY %12(s32)210    RetRA implicit $v0, implicit $v1211 212...213---214name:            select_float215alignment:       4216tracksRegLiveness: true217body:             |218  bb.1.entry:219    liveins: $a0, $a1, $a2220 221    ; MIPS32-LABEL: name: select_float222    ; MIPS32: liveins: $a0, $a1, $a2223    ; MIPS32-NEXT: {{  $}}224    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0225    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1226    ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2227    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1228    ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]229    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s32), [[COPY1]], [[COPY2]]230    ; MIPS32-NEXT: $f0 = COPY [[SELECT]](s32)231    ; MIPS32-NEXT: RetRA implicit $f0232    %3:_(s32) = COPY $a0233    %0:_(s1) = G_TRUNC %3(s32)234    %1:_(s32) = COPY $a1235    %2:_(s32) = COPY $a2236    %4:_(s32) = G_SELECT %0(s1), %1, %2237    $f0 = COPY %4(s32)238    RetRA implicit $f0239 240...241---242name:            select_double243alignment:       4244tracksRegLiveness: true245fixedStack:246  - { id: 0, offset: 16, size: 4, alignment: 8, isImmutable: true }247body:             |248  bb.1.entry:249    liveins: $d6, $d7250 251    ; MIPS32-LABEL: name: select_double252    ; MIPS32: liveins: $d6, $d7253    ; MIPS32-NEXT: {{  $}}254    ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d6255    ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $d7256    ; MIPS32-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0257    ; MIPS32-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)258    ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1259    ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[LOAD]], [[C]]260    ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[AND]](s32), [[COPY]], [[COPY1]]261    ; MIPS32-NEXT: $d0 = COPY [[SELECT]](s64)262    ; MIPS32-NEXT: RetRA implicit $d0263    %0:_(s64) = COPY $d6264    %1:_(s64) = COPY $d7265    %4:_(p0) = G_FRAME_INDEX %fixed-stack.0266    %3:_(s32) = G_LOAD %4(p0) :: (load (s32) from %fixed-stack.0, align 8)267    %2:_(s1) = G_TRUNC %3(s32)268    %5:_(s64) = G_SELECT %2(s1), %0, %1269    $d0 = COPY %5(s64)270    RetRA implicit $d0271 272...273