brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 52baa5d Raw
131 lines · plain
1; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort=1 -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr5 | FileCheck %s --check-prefix=ELF642 3; Test sitofp4 5define void @sitofp_double_i32(i32 %a, double %b) nounwind {6entry:7; ELF64: sitofp_double_i328  %b.addr = alloca double, align 89  %conv = sitofp i32 %a to double10; ELF64: std {{[0-9]+}}, -[[OFFSET:[0-9]+]](1)11; ELF64: lfd {{[0-9]+}}, -[[OFFSET]](1)12; ELF64: fcfid13  store double %conv, ptr %b.addr, align 814  ret void15}16 17define void @sitofp_double_i64(i64 %a, double %b) nounwind {18entry:19; ELF64: sitofp_double_i6420  %b.addr = alloca double, align 821  %conv = sitofp i64 %a to double22; ELF64: std {{[0-9]+}}, -[[OFFSET:[0-9]+]](1)23; ELF64: lfd {{[0-9]+}}, -[[OFFSET]](1)24; ELF64: fcfid25  store double %conv, ptr %b.addr, align 826  ret void27}28 29define void @sitofp_double_i16(i16 %a, double %b) nounwind {30entry:31; ELF64: sitofp_double_i1632  %b.addr = alloca double, align 833  %conv = sitofp i16 %a to double34; ELF64: extsh35; ELF64: std {{[0-9]+}}, -[[OFFSET:[0-9]+]](1)36; ELF64: lfd {{[0-9]+}}, -[[OFFSET]](1)37; ELF64: fcfid38  store double %conv, ptr %b.addr, align 839  ret void40}41 42define void @sitofp_double_i8(i8 %a, double %b) nounwind {43entry:44; ELF64: sitofp_double_i845  %b.addr = alloca double, align 846  %conv = sitofp i8 %a to double47; ELF64: extsb48; ELF64: std {{[0-9]+}}, -[[OFFSET:[0-9]+]](1)49; ELF64: lfd {{[0-9]+}}, -[[OFFSET]](1)50; ELF64: fcfid51  store double %conv, ptr %b.addr, align 852  ret void53}54 55; Test fptosi56 57define void @fptosi_float_i32(float %a) nounwind {58entry:59; ELF64: fptosi_float_i3260  %b.addr = alloca i32, align 461  %conv = fptosi float %a to i3262; ELF64: fctiwz63; ELF64: stfd64; ELF64: lwa65  store i32 %conv, ptr %b.addr, align 466  ret void67}68 69define void @fptosi_float_i64(float %a) nounwind {70entry:71; ELF64: fptosi_float_i6472  %b.addr = alloca i64, align 473  %conv = fptosi float %a to i6474; ELF64: fctidz75; ELF64: stfd76; ELF64: ld77  store i64 %conv, ptr %b.addr, align 478  ret void79}80 81define void @fptosi_double_i32(double %a) nounwind {82entry:83; ELF64: fptosi_double_i3284  %b.addr = alloca i32, align 885  %conv = fptosi double %a to i3286; ELF64: fctiwz87; ELF64: stfd88; ELF64: lwa89  store i32 %conv, ptr %b.addr, align 890  ret void91}92 93define void @fptosi_double_i64(double %a) nounwind {94entry:95; ELF64: fptosi_double_i6496  %b.addr = alloca i64, align 897  %conv = fptosi double %a to i6498; ELF64: fctidz99; ELF64: stfd100; ELF64: ld101  store i64 %conv, ptr %b.addr, align 8102  ret void103}104 105; Test fptoui106 107define void @fptoui_float_i32(float %a) nounwind {108entry:109; ELF64: fptoui_float_i32110  %b.addr = alloca i32, align 4111  %conv = fptoui float %a to i32112; ELF64: fctidz113; ELF64: stfd114; ELF64: lwz115  store i32 %conv, ptr %b.addr, align 4116  ret void117}118 119define void @fptoui_double_i32(double %a) nounwind {120entry:121; ELF64: fptoui_double_i32122  %b.addr = alloca i32, align 8123  %conv = fptoui double %a to i32124; ELF64: fctidz125; ELF64: stfd126; ELF64: lwz127  store i32 %conv, ptr %b.addr, align 8128  ret void129}130 131