brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.2 KiB · 294f074 Raw
152 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=+altivec \3; RUN:     -vec-extabi -mtriple powerpc-ibm-aix-xcoff < %s | \4; RUN:   FileCheck %s --check-prefix=32BIT5 6; RUN: llc -verify-machineinstrs -mcpu=pwr7 -mattr=+altivec \7; RUN:     -vec-extabi -mtriple powerpc64-ibm-aix-xcoff < %s | \8; RUN:   FileCheck %s --check-prefix=64BIT9%struct.Test = type { double, double, double, double }10 11@__const.caller.t = private unnamed_addr constant %struct.Test { double 0.000000e+00, double 1.000000e+00, double 2.000000e+00, double 3.000000e+00 }, align 812 13define double @caller() {14; 32BIT-LABEL: caller:15; 32BIT:       # %bb.0: # %entry16; 32BIT-NEXT:    mflr 017; 32BIT-NEXT:    stwu 1, -192(1)18; 32BIT-NEXT:    lis 4, 1639219; 32BIT-NEXT:    stw 0, 200(1)20; 32BIT-NEXT:    li 3, 021; 32BIT-NEXT:    xxlxor 0, 0, 022; 32BIT-NEXT:    xxlxor 1, 1, 123; 32BIT-NEXT:    stw 4, 180(1)24; 32BIT-NEXT:    lis 4, 1638425; 32BIT-NEXT:    stw 3, 184(1)26; 32BIT-NEXT:    stw 3, 176(1)27; 32BIT-NEXT:    stw 4, 172(1)28; 32BIT-NEXT:    stw 3, 168(1)29; 32BIT-NEXT:    lis 4, 1636830; 32BIT-NEXT:    stw 3, 160(1)31; 32BIT-NEXT:    stw 3, 156(1)32; 32BIT-NEXT:    li 3, 13633; 32BIT-NEXT:    stw 4, 164(1)34; 32BIT-NEXT:    li 4, 12035; 32BIT-NEXT:    stxvw4x 0, 1, 336; 32BIT-NEXT:    li 3, 10437; 32BIT-NEXT:    stxvw4x 0, 1, 438; 32BIT-NEXT:    stxvw4x 0, 1, 339; 32BIT-NEXT:    li 3, 8840; 32BIT-NEXT:    li 4, 7241; 32BIT-NEXT:    xxlxor 2, 2, 242; 32BIT-NEXT:    stxvw4x 0, 1, 343; 32BIT-NEXT:    stxvw4x 0, 1, 444; 32BIT-NEXT:    li 4, 51245; 32BIT-NEXT:    stw 4, 152(1)46; 32BIT-NEXT:    lwz 4, L..C0(2) # %const.047; 32BIT-NEXT:    li 3, 4848; 32BIT-NEXT:    xxlxor 34, 34, 3449; 32BIT-NEXT:    xxlxor 35, 35, 3550; 32BIT-NEXT:    xxlxor 36, 36, 3651; 32BIT-NEXT:    xxlxor 37, 37, 3752; 32BIT-NEXT:    xxlxor 38, 38, 3853; 32BIT-NEXT:    lxvd2x 0, 0, 454; 32BIT-NEXT:    xxlxor 39, 39, 3955; 32BIT-NEXT:    xxlxor 40, 40, 4056; 32BIT-NEXT:    li 4, 25657; 32BIT-NEXT:    xxlxor 41, 41, 4158; 32BIT-NEXT:    xxlxor 42, 42, 4259; 32BIT-NEXT:    xxlxor 43, 43, 4360; 32BIT-NEXT:    xxlxor 44, 44, 4461; 32BIT-NEXT:    xxlxor 45, 45, 4562; 32BIT-NEXT:    stxvd2x 0, 1, 363; 32BIT-NEXT:    li 3, 12864; 32BIT-NEXT:    xxlxor 3, 3, 365; 32BIT-NEXT:    xxlxor 4, 4, 466; 32BIT-NEXT:    xxlxor 5, 5, 567; 32BIT-NEXT:    xxlxor 6, 6, 668; 32BIT-NEXT:    xxlxor 7, 7, 769; 32BIT-NEXT:    xxlxor 8, 8, 870; 32BIT-NEXT:    xxlxor 9, 9, 971; 32BIT-NEXT:    xxlxor 10, 10, 1072; 32BIT-NEXT:    xxlxor 11, 11, 1173; 32BIT-NEXT:    xxlxor 12, 12, 1274; 32BIT-NEXT:    xxlxor 13, 13, 1375; 32BIT-NEXT:    bl .callee[PR]76; 32BIT-NEXT:    nop77; 32BIT-NEXT:    addi 1, 1, 19278; 32BIT-NEXT:    lwz 0, 8(1)79; 32BIT-NEXT:    mtlr 080; 32BIT-NEXT:    blr81;82; 64BIT-LABEL: caller:83; 64BIT:       # %bb.0: # %entry84; 64BIT-NEXT:    mflr 085; 64BIT-NEXT:    stdu 1, -224(1)86; 64BIT-NEXT:    li 3, 204987; 64BIT-NEXT:    std 0, 240(1)88; 64BIT-NEXT:    li 4, 189; 64BIT-NEXT:    xxlxor 0, 0, 090; 64BIT-NEXT:    xxlxor 1, 1, 191; 64BIT-NEXT:    rldic 3, 3, 51, 192; 64BIT-NEXT:    rldic 4, 4, 62, 193; 64BIT-NEXT:    xxlxor 2, 2, 294; 64BIT-NEXT:    xxlxor 34, 34, 3495; 64BIT-NEXT:    std 3, 216(1)96; 64BIT-NEXT:    li 3, 102397; 64BIT-NEXT:    std 4, 208(1)98; 64BIT-NEXT:    li 4, 099; 64BIT-NEXT:    xxlxor 35, 35, 35100; 64BIT-NEXT:    xxlxor 36, 36, 36101; 64BIT-NEXT:    rldic 3, 3, 52, 2102; 64BIT-NEXT:    std 4, 192(1)103; 64BIT-NEXT:    xxlxor 37, 37, 37104; 64BIT-NEXT:    xxlxor 38, 38, 38105; 64BIT-NEXT:    xxlxor 39, 39, 39106; 64BIT-NEXT:    std 3, 200(1)107; 64BIT-NEXT:    li 3, 160108; 64BIT-NEXT:    xxlxor 40, 40, 40109; 64BIT-NEXT:    stxvw4x 0, 1, 3110; 64BIT-NEXT:    li 3, 144111; 64BIT-NEXT:    xxlxor 41, 41, 41112; 64BIT-NEXT:    xxlxor 42, 42, 42113; 64BIT-NEXT:    stxvw4x 0, 1, 3114; 64BIT-NEXT:    li 3, 128115; 64BIT-NEXT:    xxlxor 43, 43, 43116; 64BIT-NEXT:    stxvw4x 0, 1, 3117; 64BIT-NEXT:    std 4, 176(1)118; 64BIT-NEXT:    ld 4, L..C0(2) # %const.0119; 64BIT-NEXT:    li 3, 512120; 64BIT-NEXT:    xxlxor 44, 44, 44121; 64BIT-NEXT:    xxlxor 45, 45, 45122; 64BIT-NEXT:    lxvd2x 0, 0, 4123; 64BIT-NEXT:    std 3, 184(1)124; 64BIT-NEXT:    li 3, 80125; 64BIT-NEXT:    li 4, 256126; 64BIT-NEXT:    xxlxor 3, 3, 3127; 64BIT-NEXT:    xxlxor 4, 4, 4128; 64BIT-NEXT:    xxlxor 5, 5, 5129; 64BIT-NEXT:    stxvd2x 0, 1, 3130; 64BIT-NEXT:    li 3, 128131; 64BIT-NEXT:    xxlxor 6, 6, 6132; 64BIT-NEXT:    xxlxor 7, 7, 7133; 64BIT-NEXT:    xxlxor 8, 8, 8134; 64BIT-NEXT:    xxlxor 9, 9, 9135; 64BIT-NEXT:    xxlxor 10, 10, 10136; 64BIT-NEXT:    xxlxor 11, 11, 11137; 64BIT-NEXT:    xxlxor 12, 12, 12138; 64BIT-NEXT:    xxlxor 13, 13, 13139; 64BIT-NEXT:    bl .callee[PR]140; 64BIT-NEXT:    nop141; 64BIT-NEXT:    addi 1, 1, 224142; 64BIT-NEXT:    ld 0, 16(1)143; 64BIT-NEXT:    mtlr 0144; 64BIT-NEXT:    blr145 146  entry:147    %call = tail call double @callee(i32 signext 128, i32 signext 256, double 0.000000e+00, double 0.000000e+00, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 0.000000e+00, double 0.000000e+00>, <2 x double> <double 2.400000e+01, double 2.500000e+01>, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, i32 signext 512, ptr nonnull byval(%struct.Test) align 4 @__const.caller.t)148      ret double %call149}150 151declare double @callee(i32 signext, i32 signext, double, double, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, double, double, double, double, double, double, double, double, double, double, double, i32 signext, ptr byval(%struct.Test) align 8)152