brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 5953e57 Raw
119 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s3--- |4  define void @truncating_f32(double %x) {5    %alloca = alloca i32, align 46    %bitcast = bitcast double %x to i647    %trunc = trunc i64 %bitcast to i328    store i32 %trunc, ptr %alloca, align 49    ret void10  }11 12  define void @truncating_f16(double %x) {13    %alloca = alloca i16, align 214    %bitcast = bitcast double %x to i6415    %trunc = trunc i64 %bitcast to i1616    store i16 %trunc, ptr %alloca, align 217    ret void18  }19 20  define void @truncating_f8(double %x) {21    %alloca = alloca i8, align 122    %bitcast = bitcast double %x to i6423    %trunc = trunc i64 %bitcast to i824    store i8 %trunc, ptr %alloca, align 125    ret void26  }27 28...29---30name:            truncating_f3231alignment:       432legalized:       true33regBankSelected: true34tracksRegLiveness: true35liveins:36  - { reg: '$d0' }37frameInfo:38  maxAlignment:    439stack:40  - { id: 0, name: alloca, size: 4, alignment: 4 }41machineFunctionInfo: {}42body:             |43  bb.1 (%ir-block.0):44    liveins: $d045 46    ; CHECK-LABEL: name: truncating_f3247    ; CHECK: liveins: $d048    ; CHECK-NEXT: {{  $}}49    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d050    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr32 = COPY [[COPY]].ssub51    ; CHECK-NEXT: STRSui [[COPY1]], %stack.0.alloca, 0 :: (store (s32) into %ir.alloca)52    ; CHECK-NEXT: RET_ReallyLR53    %0:fpr(s64) = COPY $d054    %1:gpr(p0) = G_FRAME_INDEX %stack.0.alloca55    G_STORE %0(s64), %1(p0) :: (store (s32) into %ir.alloca)56    RET_ReallyLR57 58...59---60name:            truncating_f1661alignment:       462legalized:       true63regBankSelected: true64tracksRegLiveness: true65liveins:66  - { reg: '$d0' }67frameInfo:68  maxAlignment:    269stack:70  - { id: 0, name: alloca, size: 2, alignment: 2 }71machineFunctionInfo: {}72body:             |73  bb.1 (%ir-block.0):74    liveins: $d075 76    ; CHECK-LABEL: name: truncating_f1677    ; CHECK: liveins: $d078    ; CHECK-NEXT: {{  $}}79    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d080    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr16 = COPY [[COPY]].hsub81    ; CHECK-NEXT: STRHui [[COPY1]], %stack.0.alloca, 0 :: (store (s16) into %ir.alloca)82    ; CHECK-NEXT: RET_ReallyLR83    %0:fpr(s64) = COPY $d084    %1:gpr(p0) = G_FRAME_INDEX %stack.0.alloca85    G_STORE %0(s64), %1(p0) :: (store (s16) into %ir.alloca)86    RET_ReallyLR87 88...89---90name:            truncating_f891alignment:       492legalized:       true93regBankSelected: true94tracksRegLiveness: true95liveins:96  - { reg: '$d0' }97frameInfo:98  maxAlignment:    199stack:100  - { id: 0, name: alloca, size: 1, alignment: 1 }101machineFunctionInfo: {}102body:             |103  bb.1 (%ir-block.0):104    liveins: $d0105 106    ; CHECK-LABEL: name: truncating_f8107    ; CHECK: liveins: $d0108    ; CHECK-NEXT: {{  $}}109    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0110    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr8 = COPY [[COPY]].bsub111    ; CHECK-NEXT: STRBui [[COPY1]], %stack.0.alloca, 0 :: (store (s8) into %ir.alloca)112    ; CHECK-NEXT: RET_ReallyLR113    %0:fpr(s64) = COPY $d0114    %1:gpr(p0) = G_FRAME_INDEX %stack.0.alloca115    G_STORE %0(s64), %1(p0) :: (store (s8) into %ir.alloca)116    RET_ReallyLR117 118...119