brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · c5874d1 Raw
184 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown -ppc-vsr-nums-as-vr \3; RUN:   -relocation-model=pic -ppc-asm-full-reg-names -verify-machineinstrs \4; RUN:   < %s | FileCheck %s5; RUN: llc -mcpu=pwr9 -mtriple=powerpc64-unknown-unknown -ppc-vsr-nums-as-vr \6; RUN:   -ppc-asm-full-reg-names -verify-machineinstrs \7; RUN:   < %s | FileCheck %s -check-prefix=CHECK-BE8 9define dso_local void @testutof(<8 x i16> %a, ptr nocapture %ptr) local_unnamed_addr #0 {10; CHECK-LABEL: testutof:11; CHECK:       # %bb.0: # %entry12; CHECK-NEXT:    vextractuh v2, v2, 1413; CHECK-NEXT:    xscvuxdsp f0, v214; CHECK-NEXT:    stfs f0, 0(r5)15; CHECK-NEXT:    blr16;17; CHECK-BE-LABEL: testutof:18; CHECK-BE:       # %bb.0: # %entry19; CHECK-BE-NEXT:    vextractuh v2, v2, 020; CHECK-BE-NEXT:    xscvuxdsp f0, v221; CHECK-BE-NEXT:    stfs f0, 0(r5)22; CHECK-BE-NEXT:    blr23entry:24  %vecext = extractelement <8 x i16> %a, i32 025  %conv = uitofp i16 %vecext to float26  store float %conv, ptr %ptr, align 427  ret void28}29 30define dso_local void @testutod(<8 x i16> %a, ptr nocapture %ptr) local_unnamed_addr #0 {31; CHECK-LABEL: testutod:32; CHECK:       # %bb.0: # %entry33; CHECK-NEXT:    vextractuh v2, v2, 1434; CHECK-NEXT:    xscvuxddp f0, v235; CHECK-NEXT:    stfd f0, 0(r5)36; CHECK-NEXT:    blr37;38; CHECK-BE-LABEL: testutod:39; CHECK-BE:       # %bb.0: # %entry40; CHECK-BE-NEXT:    vextractuh v2, v2, 041; CHECK-BE-NEXT:    xscvuxddp f0, v242; CHECK-BE-NEXT:    stfd f0, 0(r5)43; CHECK-BE-NEXT:    blr44entry:45  %vecext = extractelement <8 x i16> %a, i32 046  %conv = uitofp i16 %vecext to double47  store double %conv, ptr %ptr, align 848  ret void49}50 51define dso_local void @teststof(<8 x i16> %a, ptr nocapture %ptr) local_unnamed_addr #0 {52; CHECK-LABEL: teststof:53; CHECK:       # %bb.0: # %entry54; CHECK-NEXT:    vextractuh v2, v2, 1455; CHECK-NEXT:    vextsh2d v2, v256; CHECK-NEXT:    xscvsxdsp f0, v257; CHECK-NEXT:    stfs f0, 0(r5)58; CHECK-NEXT:    blr59;60; CHECK-BE-LABEL: teststof:61; CHECK-BE:       # %bb.0: # %entry62; CHECK-BE-NEXT:    vextractuh v2, v2, 063; CHECK-BE-NEXT:    vextsh2d v2, v264; CHECK-BE-NEXT:    xscvsxdsp f0, v265; CHECK-BE-NEXT:    stfs f0, 0(r5)66; CHECK-BE-NEXT:    blr67entry:68  %vecext = extractelement <8 x i16> %a, i32 069  %conv = sitofp i16 %vecext to float70  store float %conv, ptr %ptr, align 471  ret void72}73 74define dso_local void @teststod(<8 x i16> %a, ptr nocapture %ptr) local_unnamed_addr #0 {75; CHECK-LABEL: teststod:76; CHECK:       # %bb.0: # %entry77; CHECK-NEXT:    vextractuh v2, v2, 1478; CHECK-NEXT:    vextsh2d v2, v279; CHECK-NEXT:    xscvsxddp f0, v280; CHECK-NEXT:    stfd f0, 0(r5)81; CHECK-NEXT:    blr82;83; CHECK-BE-LABEL: teststod:84; CHECK-BE:       # %bb.0: # %entry85; CHECK-BE-NEXT:    vextractuh v2, v2, 086; CHECK-BE-NEXT:    vextsh2d v2, v287; CHECK-BE-NEXT:    xscvsxddp f0, v288; CHECK-BE-NEXT:    stfd f0, 0(r5)89; CHECK-BE-NEXT:    blr90entry:91  %vecext = extractelement <8 x i16> %a, i32 092  %conv = sitofp i16 %vecext to double93  store double %conv, ptr %ptr, align 894  ret void95}96 97define dso_local void @testsubtod(<16 x i8> %a, ptr nocapture %ptr) local_unnamed_addr #0 {98; CHECK-LABEL: testsubtod:99; CHECK:       # %bb.0: # %entry100; CHECK-NEXT:    vextractub v2, v2, 15101; CHECK-NEXT:    xscvuxddp f0, v2102; CHECK-NEXT:    stfd f0, 0(r5)103; CHECK-NEXT:    blr104;105; CHECK-BE-LABEL: testsubtod:106; CHECK-BE:       # %bb.0: # %entry107; CHECK-BE-NEXT:    vextractub v2, v2, 0108; CHECK-BE-NEXT:    xscvuxddp f0, v2109; CHECK-BE-NEXT:    stfd f0, 0(r5)110; CHECK-BE-NEXT:    blr111entry:112  %vecext = extractelement <16 x i8> %a, i32 0113  %conv = uitofp i8 %vecext to double114  store double %conv, ptr %ptr, align 8115  ret void116}117 118define dso_local void @testsbtod(<16 x i8> %a, ptr nocapture %ptr) local_unnamed_addr #0 {119; CHECK-LABEL: testsbtod:120; CHECK:       # %bb.0: # %entry121; CHECK-NEXT:    vextractuh v2, v2, 15122; CHECK-NEXT:    vextsh2d v2, v2123; CHECK-NEXT:    xscvsxddp f0, v2124; CHECK-NEXT:    stfd f0, 0(r5)125; CHECK-NEXT:    blr126;127; CHECK-BE-LABEL: testsbtod:128; CHECK-BE:       # %bb.0: # %entry129; CHECK-BE-NEXT:    vextractub v2, v2, 0130; CHECK-BE-NEXT:    vextsh2d v2, v2131; CHECK-BE-NEXT:    xscvsxddp f0, v2132; CHECK-BE-NEXT:    stfd f0, 0(r5)133; CHECK-BE-NEXT:    blr134entry:135  %vecext = extractelement <16 x i8> %a, i32 0136  %conv = sitofp i8 %vecext to double137  store double %conv, ptr %ptr, align 8138  ret void139}140 141define dso_local void @testsubtof(<16 x i8> %a, ptr nocapture %ptr) local_unnamed_addr #0 {142; CHECK-LABEL: testsubtof:143; CHECK:       # %bb.0: # %entry144; CHECK-NEXT:    vextractub v2, v2, 15145; CHECK-NEXT:    xscvuxdsp f0, v2146; CHECK-NEXT:    stfs f0, 0(r5)147; CHECK-NEXT:    blr148;149; CHECK-BE-LABEL: testsubtof:150; CHECK-BE:       # %bb.0: # %entry151; CHECK-BE-NEXT:    vextractub v2, v2, 0152; CHECK-BE-NEXT:    xscvuxdsp f0, v2153; CHECK-BE-NEXT:    stfs f0, 0(r5)154; CHECK-BE-NEXT:    blr155entry:156  %vecext = extractelement <16 x i8> %a, i32 0157  %conv = uitofp i8 %vecext to float158  store float %conv, ptr %ptr, align 8159  ret void160}161 162define dso_local void @testsbtof(<16 x i8> %a, ptr nocapture %ptr) local_unnamed_addr #0 {163; CHECK-LABEL: testsbtof:164; CHECK:       # %bb.0: # %entry165; CHECK-NEXT:    vextractub v2, v2, 15166; CHECK-NEXT:    vextsh2d v2, v2167; CHECK-NEXT:    xscvsxdsp f0, v2168; CHECK-NEXT:    stfs f0, 0(r5)169; CHECK-NEXT:    blr170;171; CHECK-BE-LABEL: testsbtof:172; CHECK-BE:       # %bb.0: # %entry173; CHECK-BE-NEXT:    vextractub v2, v2, 0174; CHECK-BE-NEXT:    vextsh2d v2, v2175; CHECK-BE-NEXT:    xscvsxdsp f0, v2176; CHECK-BE-NEXT:    stfs f0, 0(r5)177; CHECK-BE-NEXT:    blr178entry:179  %vecext = extractelement <16 x i8> %a, i32 0180  %conv = sitofp i8 %vecext to float181  store float %conv, ptr %ptr, align 8182  ret void183}184