257 lines · plain
1; RUN: llc -mtriple=mipsel -mattr=mips16 -relocation-model=pic -O3 < %s | FileCheck %s -check-prefix=12; RUN: llc -mtriple=mipsel -mattr=mips16 -relocation-model=pic -O3 < %s | FileCheck %s -check-prefix=23 4 5@x = common global float 0.000000e+00, align 46@xd = common global double 0.000000e+00, align 87@y = common global float 0.000000e+00, align 48@yd = common global double 0.000000e+00, align 89@xy = common global { float, float } zeroinitializer, align 410@xyd = common global { double, double } zeroinitializer, align 811 12define void @foo() nounwind {13entry:14 %0 = load float, ptr @x, align 415 call void @v_sf(float %0)16 %1 = load double, ptr @xd, align 817 call void @v_df(double %1)18 %2 = load float, ptr @x, align 419 %3 = load float, ptr @y, align 420 call void @v_sf_sf(float %2, float %3)21 %4 = load double, ptr @xd, align 822 %5 = load float, ptr @x, align 423 call void @v_df_sf(double %4, float %5)24 %6 = load double, ptr @xd, align 825 %7 = load double, ptr @yd, align 826 call void @v_df_df(double %6, double %7)27 %call = call float @sf_v()28 %8 = load float, ptr @x, align 429 %call1 = call float @sf_sf(float %8)30 %9 = load double, ptr @xd, align 831 %call2 = call float @sf_df(double %9)32 %10 = load float, ptr @x, align 433 %11 = load float, ptr @y, align 434 %call3 = call float @sf_sf_sf(float %10, float %11)35 %12 = load double, ptr @xd, align 836 %13 = load float, ptr @x, align 437 %call4 = call float @sf_df_sf(double %12, float %13)38 %14 = load double, ptr @xd, align 839 %15 = load double, ptr @yd, align 840 %call5 = call float @sf_df_df(double %14, double %15)41 %call6 = call double @df_v()42 %16 = load float, ptr @x, align 443 %call7 = call double @df_sf(float %16)44 %17 = load double, ptr @xd, align 845 %call8 = call double @df_df(double %17)46 %18 = load float, ptr @x, align 447 %19 = load float, ptr @y, align 448 %call9 = call double @df_sf_sf(float %18, float %19)49 %20 = load double, ptr @xd, align 850 %21 = load float, ptr @x, align 451 %call10 = call double @df_df_sf(double %20, float %21)52 %22 = load double, ptr @xd, align 853 %23 = load double, ptr @yd, align 854 %call11 = call double @df_df_df(double %22, double %23)55 %call12 = call { float, float } @sc_v()56 %24 = extractvalue { float, float } %call12, 057 %25 = extractvalue { float, float } %call12, 158 %26 = load float, ptr @x, align 459 %call13 = call { float, float } @sc_sf(float %26)60 %27 = extractvalue { float, float } %call13, 061 %28 = extractvalue { float, float } %call13, 162 %29 = load double, ptr @xd, align 863 %call14 = call { float, float } @sc_df(double %29)64 %30 = extractvalue { float, float } %call14, 065 %31 = extractvalue { float, float } %call14, 166 %32 = load float, ptr @x, align 467 %33 = load float, ptr @y, align 468 %call15 = call { float, float } @sc_sf_sf(float %32, float %33)69 %34 = extractvalue { float, float } %call15, 070 %35 = extractvalue { float, float } %call15, 171 %36 = load double, ptr @xd, align 872 %37 = load float, ptr @x, align 473 %call16 = call { float, float } @sc_df_sf(double %36, float %37)74 %38 = extractvalue { float, float } %call16, 075 %39 = extractvalue { float, float } %call16, 176 %40 = load double, ptr @xd, align 877 %41 = load double, ptr @yd, align 878 %call17 = call { float, float } @sc_df_df(double %40, double %41)79 %42 = extractvalue { float, float } %call17, 080 %43 = extractvalue { float, float } %call17, 181 %call18 = call { double, double } @dc_v()82 %44 = extractvalue { double, double } %call18, 083 %45 = extractvalue { double, double } %call18, 184 %46 = load float, ptr @x, align 485 %call19 = call { double, double } @dc_sf(float %46)86 %47 = extractvalue { double, double } %call19, 087 %48 = extractvalue { double, double } %call19, 188 %49 = load double, ptr @xd, align 889 %call20 = call { double, double } @dc_df(double %49)90 %50 = extractvalue { double, double } %call20, 091 %51 = extractvalue { double, double } %call20, 192 %52 = load float, ptr @x, align 493 %53 = load float, ptr @y, align 494 %call21 = call { double, double } @dc_sf_sf(float %52, float %53)95 %54 = extractvalue { double, double } %call21, 096 %55 = extractvalue { double, double } %call21, 197 %56 = load double, ptr @xd, align 898 %57 = load float, ptr @x, align 499 %call22 = call { double, double } @dc_df_sf(double %56, float %57)100 %58 = extractvalue { double, double } %call22, 0101 %59 = extractvalue { double, double } %call22, 1102 %60 = load double, ptr @xd, align 8103 %61 = load double, ptr @yd, align 8104 %call23 = call { double, double } @dc_df_df(double %60, double %61)105 %62 = extractvalue { double, double } %call23, 0106 %63 = extractvalue { double, double } %call23, 1107 ret void108}109 110declare void @v_sf(float)111 112declare void @v_df(double)113 114declare void @v_sf_sf(float, float)115 116declare void @v_df_sf(double, float)117 118declare void @v_df_df(double, double)119 120declare float @sf_v()121 122declare float @sf_sf(float)123 124declare float @sf_df(double)125 126declare float @sf_sf_sf(float, float)127 128declare float @sf_df_sf(double, float)129 130declare float @sf_df_df(double, double)131 132declare double @df_v()133 134declare double @df_sf(float)135 136declare double @df_df(double)137 138declare double @df_sf_sf(float, float)139 140declare double @df_df_sf(double, float)141 142declare double @df_df_df(double, double)143 144declare { float, float } @sc_v()145 146declare { float, float } @sc_sf(float)147 148declare { float, float } @sc_df(double)149 150declare { float, float } @sc_sf_sf(float, float)151 152declare { float, float } @sc_df_sf(double, float)153 154declare { float, float } @sc_df_df(double, double)155 156declare { double, double } @dc_v()157 158declare { double, double } @dc_sf(float)159 160declare { double, double } @dc_df(double)161 162declare { double, double } @dc_sf_sf(float, float)163 164declare { double, double } @dc_df_sf(double, float)165 166declare { double, double } @dc_df_df(double, double)167 168; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_1)(${{[0-9]+}})169; 2: lw ${{[0-9]+}}, %call16(v_sf)(${{[0-9]+}})170 171; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_2)(${{[0-9]+}})172; 2: lw ${{[0-9]+}}, %call16(v_df)(${{[0-9]+}})173 174; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_5)(${{[0-9]+}})175; 2: lw ${{[0-9]+}}, %call16(v_sf_sf)(${{[0-9]+}})176 177; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_6)(${{[0-9]+}})178; 2: lw ${{[0-9]+}}, %call16(v_df_sf)(${{[0-9]+}})179 180; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_10)(${{[0-9]+}})181; 2: lw ${{[0-9]+}}, %call16(v_df_df)(${{[0-9]+}})182 183; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sf_0)(${{[0-9]+}})184; 2: lw ${{[0-9]+}}, %call16(sf_v)(${{[0-9]+}})185 186; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sf_1)(${{[0-9]+}})187; 2: lw ${{[0-9]+}}, %call16(sf_sf)(${{[0-9]+}})188 189; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sf_2)(${{[0-9]+}})190; 2: lw ${{[0-9]+}}, %call16(sf_df)(${{[0-9]+}})191 192; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sf_5)(${{[0-9]+}})193; 2: lw ${{[0-9]+}}, %call16(sf_sf_sf)(${{[0-9]+}})194 195; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sf_6)(${{[0-9]+}})196; 2: lw ${{[0-9]+}}, %call16(sf_df_sf)(${{[0-9]+}})197 198; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sf_10)(${{[0-9]+}})199; 2: lw ${{[0-9]+}}, %call16(sf_df_df)(${{[0-9]+}})200 201; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_df_0)(${{[0-9]+}})202; 2: lw ${{[0-9]+}}, %call16(df_v)(${{[0-9]+}})203 204; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_df_1)(${{[0-9]+}})205; 2: lw ${{[0-9]+}}, %call16(df_sf)(${{[0-9]+}})206 207; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_df_2)(${{[0-9]+}})208; 2: lw ${{[0-9]+}}, %call16(df_df)(${{[0-9]+}})209 210; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_df_5)(${{[0-9]+}})211; 2: lw ${{[0-9]+}}, %call16(df_sf_sf)(${{[0-9]+}})212 213; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_df_6)(${{[0-9]+}})214; 2: lw ${{[0-9]+}}, %call16(df_df_sf)(${{[0-9]+}})215 216; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_df_10)(${{[0-9]+}})217; 2: lw ${{[0-9]+}}, %call16(df_df_df)(${{[0-9]+}})218 219; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sc_0)(${{[0-9]+}})220; 2: lw ${{[0-9]+}}, %call16(sc_v)(${{[0-9]+}})221 222; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sc_1)(${{[0-9]+}})223; 2: lw ${{[0-9]+}}, %call16(sc_sf)(${{[0-9]+}})224 225; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sc_2)(${{[0-9]+}})226; 2: lw ${{[0-9]+}}, %call16(sc_df)(${{[0-9]+}})227 228; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sc_5)(${{[0-9]+}})229; 2: lw ${{[0-9]+}}, %call16(sc_sf_sf)(${{[0-9]+}})230 231; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sc_6)(${{[0-9]+}})232; 2: lw ${{[0-9]+}}, %call16(sc_df_sf)(${{[0-9]+}})233 234; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_sc_10)(${{[0-9]+}})235; 2: lw ${{[0-9]+}}, %call16(sc_df_df)(${{[0-9]+}})236 237; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_dc_0)(${{[0-9]+}})238; 2: lw ${{[0-9]+}}, %call16(dc_v)(${{[0-9]+}})239 240; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_dc_1)(${{[0-9]+}})241; 2: lw ${{[0-9]+}}, %call16(dc_sf)(${{[0-9]+}})242 243; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_dc_2)(${{[0-9]+}})244; 2: lw ${{[0-9]+}}, %call16(dc_df)(${{[0-9]+}})245 246; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_dc_5)(${{[0-9]+}})247; 2: lw ${{[0-9]+}}, %call16(dc_sf_sf)(${{[0-9]+}})248 249; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_dc_6)(${{[0-9]+}})250; 2: lw ${{[0-9]+}}, %call16(dc_df_sf)(${{[0-9]+}})251 252; 1: lw ${{[0-9]+}}, %got(__mips16_call_stub_dc_10)(${{[0-9]+}})253; 2: lw ${{[0-9]+}}, %call16(dc_df_df)(${{[0-9]+}})254 255 256 257