brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · 5269617 Raw
116 lines · plain
1; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr8 \2; RUN:   -verify-machineinstrs -stop-after=finalize-isel  < %s | \3; RUN:   FileCheck --check-prefixes=POWR8,VSX %s4; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr7 \5; RUN:   -verify-machineinstrs -mattr=-vsx -stop-after=finalize-isel \6; RUN:    < %s | FileCheck %s --check-prefixes=NOVSX,NOP8V7; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr7 \8; RUN:   -verify-machineinstrs -mattr=vsx -stop-after=finalize-isel \9; RUN:    < %s | FileCheck %s --check-prefixes=VSX,NOP8V10 11define float @vssr(float %a, float %b, float %c, float %d, float %e) {12entry:13  %add = fadd float %a, %b14  %add1 = fadd float %add, %c15  %add2 = fadd float %add1, %d16  %add3 = fadd float %add2, %e17  ret float %add318}19 20; POWR8-LABEL: name:            vssr21; POWR8:       - { id: 0, class: vssrc, preferred-register: '', flags: [  ] }22; POWR8:       - { id: 1, class: vssrc, preferred-register: '', flags: [  ] }23; POWR8:       - { id: 2, class: vssrc, preferred-register: '', flags: [  ] }24; POWR8:       - { id: 3, class: vssrc, preferred-register: '', flags: [  ] }25; POWR8:       - { id: 4, class: vssrc, preferred-register: '', flags: [  ] }26; POWR8:       - { id: 5, class: vssrc, preferred-register: '', flags: [  ] }27; POWR8:       - { id: 6, class: vssrc, preferred-register: '', flags: [  ] }28; POWR8:       - { id: 7, class: vssrc, preferred-register: '', flags: [  ] }29; POWR8:       - { id: 8, class: vssrc, preferred-register: '', flags: [  ] }30; POWR8:       %4:vssrc = COPY $f531; POWR8:       %3:vssrc = COPY $f432; POWR8:       %2:vssrc = COPY $f333; POWR8:       %1:vssrc = COPY $f234; POWR8:       %0:vssrc = COPY $f135; POWR8:       %5:vssrc = nofpexcept XSADDSP %0, %136; POWR8:       %6:vssrc = nofpexcept XSADDSP killed %5, %237; POWR8:       %7:vssrc = nofpexcept XSADDSP killed %6, %338; POWR8:       %8:vssrc = nofpexcept XSADDSP killed %7, %439; POWR8:       $f1 = COPY %840 41; NOP8V-LABEL: name:            vssr42; NOP8V:       registers:43; NOP8V:       - { id: 0, class: f4rc, preferred-register: '', flags: [  ] }44; NOP8V:       - { id: 1, class: f4rc, preferred-register: '', flags: [  ] }45; NOP8V:       - { id: 2, class: f4rc, preferred-register: '', flags: [  ] }46; NOP8V:       - { id: 3, class: f4rc, preferred-register: '', flags: [  ] }47; NOP8V:       - { id: 4, class: f4rc, preferred-register: '', flags: [  ] }48; NOP8V:       - { id: 5, class: f4rc, preferred-register: '', flags: [  ] }49; NOP8V:       - { id: 6, class: f4rc, preferred-register: '', flags: [  ] }50; NOP8V:       - { id: 7, class: f4rc, preferred-register: '', flags: [  ] }51; NOP8V:       - { id: 8, class: f4rc, preferred-register: '', flags: [  ] }52; NOP8V:        %4:f4rc = COPY $f553; NOP8V:        %3:f4rc = COPY $f454; NOP8V:        %2:f4rc = COPY $f355; NOP8V:        %1:f4rc = COPY $f256; NOP8V:        %0:f4rc = COPY $f157; NOP8V:        %5:f4rc = nofpexcept FADDS %0, %1, implicit $rm58; NOP8V:        %6:f4rc = nofpexcept FADDS killed %5, %2, implicit $rm59; NOP8V:        %7:f4rc = nofpexcept FADDS killed %6, %3, implicit $rm60; NOP8V:        %8:f4rc = nofpexcept FADDS killed %7, %4, implicit $rm61; NOP8V:        $f1 = COPY %862 63define double @vsfr(double %a, double %b, double %c, double %d, double %e) {64entry:65  %add = fadd double %a, %b66  %add1 = fadd double %add, %c67  %add2 = fadd double %add1, %d68  %add3 = fadd double %add2, %e69  ret double %add370}71 72; VSX-LABEL:   vsfr73; VSX:         registers:74; VSX:          - { id: 0, class: vsfrc, preferred-register: '', flags: [  ] }75; VSX:          - { id: 1, class: vsfrc, preferred-register: '', flags: [  ] }76; VSX:          - { id: 2, class: vsfrc, preferred-register: '', flags: [  ] }77; VSX:          - { id: 3, class: vsfrc, preferred-register: '', flags: [  ] }78; VSX:          - { id: 4, class: vsfrc, preferred-register: '', flags: [  ] }79; VSX:          - { id: 5, class: vsfrc, preferred-register: '', flags: [  ] }80; VSX:          - { id: 6, class: vsfrc, preferred-register: '', flags: [  ] }81; VSX:          - { id: 7, class: vsfrc, preferred-register: '', flags: [  ] }82; VSX:          - { id: 8, class: vsfrc, preferred-register: '', flags: [  ] }83; VSX:          %4:vsfrc = COPY $f584; VSX:          %3:vsfrc = COPY $f485; VSX:          %2:vsfrc = COPY $f386; VSX:          %1:vsfrc = COPY $f287; VSX:          %0:vsfrc = COPY $f188; VSX:          %5:vsfrc = nofpexcept XSADDDP %0, %1, implicit $rm89; VSX:          %6:vsfrc = nofpexcept XSADDDP killed %5, %2, implicit $rm90; VSX:          %7:vsfrc = nofpexcept XSADDDP killed %6, %3, implicit $rm91; VSX:          %8:vsfrc = nofpexcept XSADDDP killed %7, %4, implicit $rm92; VSX:          $f1 = COPY %893 94; NOVSX-LABEL:  vsfr95; NOVSX:        registers:96; NOVSX:        - { id: 0, class: f8rc, preferred-register: '', flags: [  ] }97; NOVSX:        - { id: 1, class: f8rc, preferred-register: '', flags: [  ] }98; NOVSX:        - { id: 2, class: f8rc, preferred-register: '', flags: [  ] }99; NOVSX:        - { id: 3, class: f8rc, preferred-register: '', flags: [  ] }100; NOVSX:        - { id: 4, class: f8rc, preferred-register: '', flags: [  ] }101; NOVSX:        - { id: 5, class: f8rc, preferred-register: '', flags: [  ] }102; NOVSX:        - { id: 6, class: f8rc, preferred-register: '', flags: [  ] }103; NOVSX:        - { id: 7, class: f8rc, preferred-register: '', flags: [  ] }104; NOVSX:        - { id: 8, class: f8rc, preferred-register: '', flags: [  ] }105; NOVSX:        %4:f8rc = COPY $f5106; NOVSX:        %3:f8rc = COPY $f4107; NOVSX:        %2:f8rc = COPY $f3108; NOVSX:        %1:f8rc = COPY $f2109; NOVSX:        %0:f8rc = COPY $f1110; NOVSX:        %5:f8rc = nofpexcept FADD %0, %1, implicit $rm111; NOVSX:        %6:f8rc = nofpexcept FADD killed %5, %2, implicit $rm112; NOVSX:        %7:f8rc = nofpexcept FADD killed %6, %3, implicit $rm113; NOVSX:        %8:f8rc = nofpexcept FADD killed %7, %4, implicit $rm114; NOVSX:        $f1 = COPY %8115 116