brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 9c9033e Raw
137 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=m68k-linux  -mcpu=M68020 --verify-machineinstrs | FileCheck %s3 4define internal void @select_i32(i32 %self, ptr nonnull %value) {5; CHECK-LABEL: select_i32:6; CHECK:         .cfi_startproc7; CHECK-NEXT:  ; %bb.0: ; %start8; CHECK-NEXT:    suba.l #4, %sp9; CHECK-NEXT:    .cfi_def_cfa_offset -810; CHECK-NEXT:    movem.l %d2, (0,%sp) ; 8-byte Folded Spill11; CHECK-NEXT:    cmpi.l #0, (8,%sp)12; CHECK-NEXT:    move.w %ccr, %d213; CHECK-NEXT:    sne %d114; CHECK-NEXT:    move.l (12,%sp), %d015; CHECK-NEXT:    move.w %d2, %ccr16; CHECK-NEXT:    bne .LBB0_217; CHECK-NEXT:  ; %bb.1: ; %start18; CHECK-NEXT:    and.l #255, %d119; CHECK-NEXT:    and.l #1, %d120; CHECK-NEXT:    cmpi.l #0, %d121; CHECK-NEXT:    bne .LBB0_322; CHECK-NEXT:  .LBB0_2: ; %null23; CHECK-NEXT:    suba.l %a0, %a024; CHECK-NEXT:    move.l %d0, (%a0)25; CHECK-NEXT:  .LBB0_3: ; %exit26; CHECK-NEXT:    movem.l (0,%sp), %d2 ; 8-byte Folded Reload27; CHECK-NEXT:    adda.l #4, %sp28; CHECK-NEXT:    rts29start:30  %2 = icmp eq i32 %self, 031  %3 = select i1 %2, i32 0, i32 132  switch i32 %3, label %exit [33    i32 0, label %nonnull34    i32 1, label %null35  ]36 37nonnull:                                              ; preds = %start38  store ptr %value, ptr null, align 239  br label %exit40 41null:                                              ; preds = %start42  store ptr %value, ptr null, align 243  br label %exit44 45exit:                                              ; preds = %nonnull, %null46  ret void47}48 49define internal void @select_i16(i16 %self, ptr nonnull %value) {50; CHECK-LABEL: select_i16:51; CHECK:         .cfi_startproc52; CHECK-NEXT:  ; %bb.0: ; %start53; CHECK-NEXT:    suba.l #4, %sp54; CHECK-NEXT:    .cfi_def_cfa_offset -855; CHECK-NEXT:    movem.l %d2, (0,%sp) ; 8-byte Folded Spill56; CHECK-NEXT:    cmpi.w #0, (10,%sp)57; CHECK-NEXT:    move.w %ccr, %d258; CHECK-NEXT:    sne %d159; CHECK-NEXT:    move.l (12,%sp), %d060; CHECK-NEXT:    move.w %d2, %ccr61; CHECK-NEXT:    bne .LBB1_262; CHECK-NEXT:  ; %bb.1: ; %start63; CHECK-NEXT:    and.l #255, %d164; CHECK-NEXT:    and.w #1, %d165; CHECK-NEXT:    cmpi.w #0, %d166; CHECK-NEXT:    bne .LBB1_367; CHECK-NEXT:  .LBB1_2: ; %null68; CHECK-NEXT:    suba.l %a0, %a069; CHECK-NEXT:    move.l %d0, (%a0)70; CHECK-NEXT:  .LBB1_3: ; %exit71; CHECK-NEXT:    movem.l (0,%sp), %d2 ; 8-byte Folded Reload72; CHECK-NEXT:    adda.l #4, %sp73; CHECK-NEXT:    rts74start:75  %2 = icmp eq i16 %self, 076  %3 = select i1 %2, i16 0, i16 177  switch i16 %3, label %exit [78    i16 0, label %nonnull79    i16 1, label %null80  ]81 82nonnull:                                              ; preds = %start83  store ptr %value, ptr null, align 284  br label %exit85 86null:                                              ; preds = %start87  store ptr %value, ptr null, align 288  br label %exit89 90exit:                                              ; preds = %nonnull, %null91  ret void92}93 94define internal void @select_i8(i8 %self, ptr nonnull %value) {95; CHECK-LABEL: select_i8:96; CHECK:         .cfi_startproc97; CHECK-NEXT:  ; %bb.0: ; %start98; CHECK-NEXT:     suba.l #4, %sp99; CHECK-NEXT:   .cfi_def_cfa_offset -8100; CHECK-NEXT:   movem.l %d2, (0,%sp)                    ; 8-byte Folded Spill101; CHECK-NEXT:   cmpi.b #0, (11,%sp)102; CHECK-NEXT:   move.w %ccr, %d2103; CHECK-NEXT:   sne %d1104; CHECK-NEXT:   move.l (12,%sp), %d0105; CHECK-NEXT:   move.w %d2, %ccr106; CHECK-NEXT:   bne .LBB2_2107; CHECK-NEXT:   ; %bb.1:                                ; %start108; CHECK-NEXT:   and.b #1, %d1109; CHECK-NEXT:   cmpi.b #0, %d1110; CHECK-NEXT:   bne .LBB2_3111; CHECK-NEXT:   .LBB2_2:                                ; %null112; CHECK-NEXT:   suba.l %a0, %a0113; CHECK-NEXT:   move.l %d0, (%a0)114; CHECK-NEXT:   .LBB2_3:                                ; %exit115; CHECK-NEXT:   movem.l (0,%sp), %d2                    ; 8-byte Folded Reload116; CHECK-NEXT:   adda.l #4, %sp117; CHECK-NEXT:   rts118start:119  %2 = icmp eq i8 %self, 0120  %3 = select i1 %2, i8 0, i8 1121  switch i8 %3, label %exit [122    i8 0, label %nonnull123    i8 1, label %null124  ]125 126nonnull:                                              ; preds = %start127  store ptr %value, ptr null, align 2128  br label %exit129 130null:                                              ; preds = %start131  store ptr %value, ptr null, align 2132  br label %exit133 134exit:                                              ; preds = %nonnull, %null135  ret void136}137