brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · 0894317 Raw
175 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK3--- |4  define i1 @trunc_i32toi1(i32 %a) {5    %r = trunc i32 %a to i16    ret i1 %r7  }8 9  define i8 @trunc_i32toi8(i32 %a) {10    %r = trunc i32 %a to i811    ret i8 %r12  }13 14  define i16 @trunc_i32toi16(i32 %a) {15    %r = trunc i32 %a to i1616    ret i16 %r17  }18 19  define i8 @trunc_i64toi8(i64 %a) {20    %r = trunc i64 %a to i821    ret i8 %r22  }23 24  define i16 @trunc_i64toi16(i64 %a) {25    %r = trunc i64 %a to i1626    ret i16 %r27  }28 29  define i32 @trunc_i64toi32(i64 %a) {30    %r = trunc i64 %a to i3231    ret i32 %r32  }33 34...35---36name:            trunc_i32toi137alignment:       1638legalized:       true39regBankSelected: true40registers:41  - { id: 0, class: gpr }42  - { id: 1, class: gpr }43  - { id: 2, class: gpr }44body:             |45  bb.1 (%ir-block.0):46    liveins: $edi47 48    ; CHECK-LABEL: name: trunc_i32toi149    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi50    ; CHECK: [[COPY1:%[0-9]+]]:gr8 = COPY [[COPY]].sub_8bit51    ; CHECK: $al = COPY [[COPY1]]52    ; CHECK: RET 0, implicit $al53    %0(s32) = COPY $edi54    %1(s1) = G_TRUNC %0(s32)55    %2(s8) = G_ANYEXT %1(s1)56    $al = COPY %2(s8)57    RET 0, implicit $al58 59...60---61name:            trunc_i32toi862alignment:       1663legalized:       true64regBankSelected: true65registers:66  - { id: 0, class: gpr }67  - { id: 1, class: gpr }68body:             |69  bb.1 (%ir-block.0):70    liveins: $edi71 72    ; CHECK-LABEL: name: trunc_i32toi873    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi74    ; CHECK: [[COPY1:%[0-9]+]]:gr8 = COPY [[COPY]].sub_8bit75    ; CHECK: $al = COPY [[COPY1]]76    ; CHECK: RET 0, implicit $al77    %0(s32) = COPY $edi78    %1(s8) = G_TRUNC %0(s32)79    $al = COPY %1(s8)80    RET 0, implicit $al81 82...83---84name:            trunc_i32toi1685alignment:       1686legalized:       true87regBankSelected: true88registers:89  - { id: 0, class: gpr }90  - { id: 1, class: gpr }91body:             |92  bb.1 (%ir-block.0):93    liveins: $edi94 95    ; CHECK-LABEL: name: trunc_i32toi1696    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi97    ; CHECK: [[COPY1:%[0-9]+]]:gr16 = COPY [[COPY]].sub_16bit98    ; CHECK: $ax = COPY [[COPY1]]99    ; CHECK: RET 0, implicit $ax100    %0(s32) = COPY $edi101    %1(s16) = G_TRUNC %0(s32)102    $ax = COPY %1(s16)103    RET 0, implicit $ax104 105...106---107name:            trunc_i64toi8108alignment:       16109legalized:       true110regBankSelected: true111registers:112  - { id: 0, class: gpr }113  - { id: 1, class: gpr }114body:             |115  bb.1 (%ir-block.0):116    liveins: $rdi117 118    ; CHECK-LABEL: name: trunc_i64toi8119    ; CHECK: [[COPY:%[0-9]+]]:gr64_with_sub_8bit = COPY $rdi120    ; CHECK: [[COPY1:%[0-9]+]]:gr8 = COPY [[COPY]].sub_8bit121    ; CHECK: $al = COPY [[COPY1]]122    ; CHECK: RET 0, implicit $al123    %0(s64) = COPY $rdi124    %1(s8) = G_TRUNC %0(s64)125    $al = COPY %1(s8)126    RET 0, implicit $al127 128...129---130name:            trunc_i64toi16131alignment:       16132legalized:       true133regBankSelected: true134registers:135  - { id: 0, class: gpr }136  - { id: 1, class: gpr }137body:             |138  bb.1 (%ir-block.0):139    liveins: $rdi140 141    ; CHECK-LABEL: name: trunc_i64toi16142    ; CHECK: [[COPY:%[0-9]+]]:gr64 = COPY $rdi143    ; CHECK: [[COPY1:%[0-9]+]]:gr16 = COPY [[COPY]].sub_16bit144    ; CHECK: $ax = COPY [[COPY1]]145    ; CHECK: RET 0, implicit $ax146    %0(s64) = COPY $rdi147    %1(s16) = G_TRUNC %0(s64)148    $ax = COPY %1(s16)149    RET 0, implicit $ax150 151...152---153name:            trunc_i64toi32154alignment:       16155legalized:       true156regBankSelected: true157registers:158  - { id: 0, class: gpr }159  - { id: 1, class: gpr }160body:             |161  bb.1 (%ir-block.0):162    liveins: $rdi163 164    ; CHECK-LABEL: name: trunc_i64toi32165    ; CHECK: [[COPY:%[0-9]+]]:gr64 = COPY $rdi166    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY [[COPY]].sub_32bit167    ; CHECK: $eax = COPY [[COPY1]]168    ; CHECK: RET 0, implicit $eax169    %0(s64) = COPY $rdi170    %1(s32) = G_TRUNC %0(s64)171    $eax = COPY %1(s32)172    RET 0, implicit $eax173 174...175