1 ; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=static < %s | FileCheck %s -check-prefix=stel 2 3 @x = common global float 0.000000e+00, align 4 4 @y = common global float 0.000000e+00, align 4 5 @xd = common global double 0.000000e+00, align 8 6 @yd = common global double 0.000000e+00, align 8 7 @xy = common global { float, float } zeroinitializer, align 4 8 @xyd = common global { double, double } zeroinitializer, align 8 9 @ret_sf = common global float 0.000000e+00, align 4 10 @ret_df = common global double 0.000000e+00, align 8 11 @ret_sc = common global { float, float } zeroinitializer, align 4 12 @ret_dc = common global { double, double } zeroinitializer, align 8 13 @lx = common global float 0.000000e+00, align 4 14 @ly = common global float 0.000000e+00, align 4 15 @lxd = common global double 0.000000e+00, align 8 16 @lyd = common global double 0.000000e+00, align 8 17 @lxy = common global { float, float } zeroinitializer, align 4 18 @lxyd = common global { double, double } zeroinitializer, align 8 19 @lret_sf = common global float 0.000000e+00, align 4 20 @lret_df = common global double 0.000000e+00, align 8 21 @lret_sc = common global { float, float } zeroinitializer, align 4 22 @lret_dc = common global { double, double } zeroinitializer, align 8 23 @.str = private unnamed_addr constant [10 x i8] c"%f %f %i\0A\00", align 1 24 @.str1 = private unnamed_addr constant [16 x i8] c"%f=%f %f=%f %i\0A\00", align 1 25 @.str2 = private unnamed_addr constant [22 x i8] c"%f=%f %f=%f %f=%f %i\0A\00", align 1 26 @.str3 = private unnamed_addr constant [18 x i8] c"%f+%fi=%f+%fi %i\0A\00", align 1 27 @.str4 = private unnamed_addr constant [24 x i8] c"%f+%fi=%f+%fi %f=%f %i\0A\00", align 1 28 29 ; Function Attrs: nounwind 30 define void @clear() #0 { 31 entry: 32 store float 1.000000e+00, float* @x, align 4 33 store float 1.000000e+00, float* @y, align 4 34 store double 1.000000e+00, double* @xd, align 8 35 store double 1.000000e+00, double* @yd, align 8 36 store float 1.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @xy, i32 0, i32 0) 37 store float 0.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @xy, i32 0, i32 1) 38 store double 1.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @xyd, i32 0, i32 0) 39 store double 0.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @xyd, i32 0, i32 1) 40 store float 1.000000e+00, float* @ret_sf, align 4 41 store double 1.000000e+00, double* @ret_df, align 8 42 store float 1.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 43 store float 0.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 44 store double 1.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 45 store double 0.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 46 store float 0.000000e+00, float* @lx, align 4 47 store float 0.000000e+00, float* @ly, align 4 48 store double 0.000000e+00, double* @lxd, align 8 49 store double 0.000000e+00, double* @lyd, align 8 50 store float 0.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @lxy, i32 0, i32 0) 51 store float 0.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @lxy, i32 0, i32 1) 52 store double 0.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @lxyd, i32 0, i32 0) 53 store double 0.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @lxyd, i32 0, i32 1) 54 store float 0.000000e+00, float* @lret_sf, align 4 55 store double 0.000000e+00, double* @lret_df, align 8 56 store float 0.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 57 store float 0.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 58 store double 0.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 59 store double 0.000000e+00, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 60 ret void 61 } 62 63 ; Function Attrs: nounwind 64 define i32 @main() #0 { 65 entry: 66 %retval = alloca i32, align 4 67 store i32 0, i32* %retval 68 call void @clear() 69 store float 1.500000e+00, float* @lx, align 4 70 %0 = load float, float* @lx, align 4 71 call void @v_sf(float %0) 72 %1 = load float, float* @x, align 4 73 %conv = fpext float %1 to double 74 %2 = load float, float* @lx, align 4 75 %conv1 = fpext float %2 to double 76 %3 = load float, float* @x, align 4 77 %4 = load float, float* @lx, align 4 78 %cmp = fcmp oeq float %3, %4 79 %conv2 = zext i1 %cmp to i32 80 %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i32 0, i32 0), double %conv, double %conv1, i32 %conv2) 81 call void @clear() 82 store double 0x41678C29C0000000, double* @lxd, align 8 83 %5 = load double, double* @lxd, align 8 84 call void @v_df(double %5) 85 %6 = load double, double* @xd, align 8 86 %7 = load double, double* @lxd, align 8 87 %8 = load double, double* @xd, align 8 88 %9 = load double, double* @lxd, align 8 89 %cmp3 = fcmp oeq double %8, %9 90 %conv4 = zext i1 %cmp3 to i32 91 %call5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i32 0, i32 0), double %6, double %7, i32 %conv4) 92 call void @clear() 93 store float 9.000000e+00, float* @lx, align 4 94 store float 1.000000e+01, float* @ly, align 4 95 %10 = load float, float* @lx, align 4 96 %11 = load float, float* @ly, align 4 97 call void @v_sf_sf(float %10, float %11) 98 %12 = load float, float* @x, align 4 99 %conv6 = fpext float %12 to double 100 %13 = load float, float* @lx, align 4 101 %conv7 = fpext float %13 to double 102 %14 = load float, float* @y, align 4 103 %conv8 = fpext float %14 to double 104 %15 = load float, float* @ly, align 4 105 %conv9 = fpext float %15 to double 106 %16 = load float, float* @x, align 4 107 %17 = load float, float* @lx, align 4 108 %cmp10 = fcmp oeq float %16, %17 109 br i1 %cmp10, label %land.rhs, label %land.end 110 111 land.rhs: ; preds = %entry 112 %18 = load float, float* @y, align 4 113 %19 = load float, float* @ly, align 4 114 %cmp12 = fcmp oeq float %18, %19 115 br label %land.end 116 117 land.end: ; preds = %land.rhs, %entry 118 %20 = phi i1 [ false, %entry ], [ %cmp12, %land.rhs ] 119 %land.ext = zext i1 %20 to i32 120 %call14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %conv6, double %conv7, double %conv8, double %conv9, i32 %land.ext) 121 call void @clear() 122 store float 0x3FFE666660000000, float* @lx, align 4 123 store double 0x4007E613249FF279, double* @lyd, align 8 124 %21 = load float, float* @lx, align 4 125 %22 = load double, double* @lyd, align 8 126 call void @v_sf_df(float %21, double %22) 127 %23 = load float, float* @x, align 4 128 %conv15 = fpext float %23 to double 129 %24 = load float, float* @lx, align 4 130 %conv16 = fpext float %24 to double 131 %25 = load double, double* @yd, align 8 132 %26 = load double, double* @lyd, align 8 133 %27 = load float, float* @x, align 4 134 %28 = load float, float* @lx, align 4 135 %cmp17 = fcmp oeq float %27, %28 136 %conv18 = zext i1 %cmp17 to i32 137 %29 = load double, double* @yd, align 8 138 %30 = load double, double* @lyd, align 8 139 %cmp19 = fcmp oeq double %29, %30 140 %conv20 = zext i1 %cmp19 to i32 141 %and = and i32 %conv18, %conv20 142 %call21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %conv15, double %conv16, double %25, double %26, i32 %and) 143 call void @clear() 144 store double 0x4194E54F94000000, double* @lxd, align 8 145 store float 7.600000e+01, float* @ly, align 4 146 %31 = load double, double* @lxd, align 8 147 %32 = load float, float* @ly, align 4 148 call void @v_df_sf(double %31, float %32) 149 %33 = load double, double* @xd, align 8 150 %34 = load double, double* @lxd, align 8 151 %35 = load float, float* @y, align 4 152 %conv22 = fpext float %35 to double 153 %36 = load float, float* @ly, align 4 154 %conv23 = fpext float %36 to double 155 %37 = load double, double* @xd, align 8 156 %38 = load double, double* @lxd, align 8 157 %cmp24 = fcmp oeq double %37, %38 158 %conv25 = zext i1 %cmp24 to i32 159 %39 = load float, float* @y, align 4 160 %40 = load float, float* @ly, align 4 161 %cmp26 = fcmp oeq float %39, %40 162 %conv27 = zext i1 %cmp26 to i32 163 %and28 = and i32 %conv25, %conv27 164 %call29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %33, double %34, double %conv22, double %conv23, i32 %and28) 165 call void @clear() 166 store double 7.365198e+07, double* @lxd, align 8 167 store double 0x416536CD80000000, double* @lyd, align 8 168 %41 = load double, double* @lxd, align 8 169 %42 = load double, double* @lyd, align 8 170 call void @v_df_df(double %41, double %42) 171 %43 = load double, double* @xd, align 8 172 %44 = load double, double* @lxd, align 8 173 %45 = load double, double* @yd, align 8 174 %46 = load double, double* @lyd, align 8 175 %47 = load double, double* @xd, align 8 176 %48 = load double, double* @lxd, align 8 177 %cmp30 = fcmp oeq double %47, %48 178 %conv31 = zext i1 %cmp30 to i32 179 %49 = load double, double* @yd, align 8 180 %50 = load double, double* @lyd, align 8 181 %cmp32 = fcmp oeq double %49, %50 182 %conv33 = zext i1 %cmp32 to i32 183 %and34 = and i32 %conv31, %conv33 184 %call35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %43, double %44, double %45, double %46, i32 %and34) 185 call void @clear() 186 store float 0x4016666660000000, float* @ret_sf, align 4 187 %call36 = call float @sf_v() 188 store float %call36, float* @lret_sf, align 4 189 %51 = load float, float* @ret_sf, align 4 190 %conv37 = fpext float %51 to double 191 %52 = load float, float* @lret_sf, align 4 192 %conv38 = fpext float %52 to double 193 %53 = load float, float* @ret_sf, align 4 194 %54 = load float, float* @lret_sf, align 4 195 %cmp39 = fcmp oeq float %53, %54 196 %conv40 = zext i1 %cmp39 to i32 197 %call41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i32 0, i32 0), double %conv37, double %conv38, i32 %conv40) 198 call void @clear() 199 store float 4.587300e+06, float* @ret_sf, align 4 200 store float 3.420000e+02, float* @lx, align 4 201 %55 = load float, float* @lx, align 4 202 %call42 = call float @sf_sf(float %55) 203 store float %call42, float* @lret_sf, align 4 204 %56 = load float, float* @ret_sf, align 4 205 %conv43 = fpext float %56 to double 206 %57 = load float, float* @lret_sf, align 4 207 %conv44 = fpext float %57 to double 208 %58 = load float, float* @x, align 4 209 %conv45 = fpext float %58 to double 210 %59 = load float, float* @lx, align 4 211 %conv46 = fpext float %59 to double 212 %60 = load float, float* @ret_sf, align 4 213 %61 = load float, float* @lret_sf, align 4 214 %cmp47 = fcmp oeq float %60, %61 215 %conv48 = zext i1 %cmp47 to i32 216 %62 = load float, float* @x, align 4 217 %63 = load float, float* @lx, align 4 218 %cmp49 = fcmp oeq float %62, %63 219 %conv50 = zext i1 %cmp49 to i32 220 %and51 = and i32 %conv48, %conv50 221 %call52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %conv43, double %conv44, double %conv45, double %conv46, i32 %and51) 222 call void @clear() 223 store float 4.445910e+06, float* @ret_sf, align 4 224 store double 0x419A7DB294000000, double* @lxd, align 8 225 %64 = load double, double* @lxd, align 8 226 %call53 = call float @sf_df(double %64) 227 store float %call53, float* @lret_sf, align 4 228 %65 = load float, float* @ret_sf, align 4 229 %conv54 = fpext float %65 to double 230 %66 = load float, float* @lret_sf, align 4 231 %conv55 = fpext float %66 to double 232 %67 = load double, double* @xd, align 8 233 %68 = load double, double* @lxd, align 8 234 %69 = load float, float* @ret_sf, align 4 235 %70 = load float, float* @lret_sf, align 4 236 %cmp56 = fcmp oeq float %69, %70 237 %conv57 = zext i1 %cmp56 to i32 238 %71 = load double, double* @xd, align 8 239 %72 = load double, double* @lxd, align 8 240 %cmp58 = fcmp oeq double %71, %72 241 %conv59 = zext i1 %cmp58 to i32 242 %and60 = and i32 %conv57, %conv59 243 %call61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %conv54, double %conv55, double %67, double %68, i32 %and60) 244 call void @clear() 245 store float 0x3FFF4BC6A0000000, float* @ret_sf, align 4 246 store float 4.445500e+03, float* @lx, align 4 247 store float 0x4068ACCCC0000000, float* @ly, align 4 248 %73 = load float, float* @lx, align 4 249 %74 = load float, float* @ly, align 4 250 %call62 = call float @sf_sf_sf(float %73, float %74) 251 store float %call62, float* @lret_sf, align 4 252 %75 = load float, float* @ret_sf, align 4 253 %conv63 = fpext float %75 to double 254 %76 = load float, float* @lret_sf, align 4 255 %conv64 = fpext float %76 to double 256 %77 = load float, float* @x, align 4 257 %conv65 = fpext float %77 to double 258 %78 = load float, float* @lx, align 4 259 %conv66 = fpext float %78 to double 260 %79 = load float, float* @y, align 4 261 %conv67 = fpext float %79 to double 262 %80 = load float, float* @ly, align 4 263 %conv68 = fpext float %80 to double 264 %81 = load float, float* @ret_sf, align 4 265 %82 = load float, float* @lret_sf, align 4 266 %cmp69 = fcmp oeq float %81, %82 267 br i1 %cmp69, label %land.lhs.true, label %land.end76 268 269 land.lhs.true: ; preds = %land.end 270 %83 = load float, float* @x, align 4 271 %84 = load float, float* @lx, align 4 272 %cmp71 = fcmp oeq float %83, %84 273 br i1 %cmp71, label %land.rhs73, label %land.end76 274 275 land.rhs73: ; preds = %land.lhs.true 276 %85 = load float, float* @y, align 4 277 %86 = load float, float* @ly, align 4 278 %cmp74 = fcmp oeq float %85, %86 279 br label %land.end76 280 281 land.end76: ; preds = %land.rhs73, %land.lhs.true, %land.end 282 %87 = phi i1 [ false, %land.lhs.true ], [ false, %land.end ], [ %cmp74, %land.rhs73 ] 283 %land.ext77 = zext i1 %87 to i32 284 %call78 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %conv63, double %conv64, double %conv65, double %conv66, double %conv67, double %conv68, i32 %land.ext77) 285 call void @clear() 286 store float 9.991300e+04, float* @ret_sf, align 4 287 store float 1.114500e+04, float* @lx, align 4 288 store double 9.994445e+07, double* @lyd, align 8 289 %88 = load float, float* @lx, align 4 290 %89 = load double, double* @lyd, align 8 291 %call79 = call float @sf_sf_df(float %88, double %89) 292 store float %call79, float* @lret_sf, align 4 293 %90 = load float, float* @ret_sf, align 4 294 %conv80 = fpext float %90 to double 295 %91 = load float, float* @lret_sf, align 4 296 %conv81 = fpext float %91 to double 297 %92 = load float, float* @x, align 4 298 %conv82 = fpext float %92 to double 299 %93 = load float, float* @lx, align 4 300 %conv83 = fpext float %93 to double 301 %94 = load double, double* @yd, align 8 302 %95 = load double, double* @lyd, align 8 303 %96 = load float, float* @ret_sf, align 4 304 %97 = load float, float* @lret_sf, align 4 305 %cmp84 = fcmp oeq float %96, %97 306 br i1 %cmp84, label %land.lhs.true86, label %land.end92 307 308 land.lhs.true86: ; preds = %land.end76 309 %98 = load float, float* @x, align 4 310 %99 = load float, float* @lx, align 4 311 %cmp87 = fcmp oeq float %98, %99 312 br i1 %cmp87, label %land.rhs89, label %land.end92 313 314 land.rhs89: ; preds = %land.lhs.true86 315 %100 = load double, double* @yd, align 8 316 %101 = load double, double* @lyd, align 8 317 %cmp90 = fcmp oeq double %100, %101 318 br label %land.end92 319 320 land.end92: ; preds = %land.rhs89, %land.lhs.true86, %land.end76 321 %102 = phi i1 [ false, %land.lhs.true86 ], [ false, %land.end76 ], [ %cmp90, %land.rhs89 ] 322 %land.ext93 = zext i1 %102 to i32 323 %call94 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %conv80, double %conv81, double %conv82, double %conv83, double %94, double %95, i32 %land.ext93) 324 call void @clear() 325 store float 0x417CCC7A00000000, float* @ret_sf, align 4 326 store double 0x4172034530000000, double* @lxd, align 8 327 store float 4.456200e+04, float* @ly, align 4 328 %103 = load double, double* @lxd, align 8 329 %104 = load float, float* @ly, align 4 330 %call95 = call float @sf_df_sf(double %103, float %104) 331 store float %call95, float* @lret_sf, align 4 332 %105 = load float, float* @ret_sf, align 4 333 %conv96 = fpext float %105 to double 334 %106 = load float, float* @lret_sf, align 4 335 %conv97 = fpext float %106 to double 336 %107 = load double, double* @xd, align 8 337 %108 = load double, double* @lxd, align 8 338 %109 = load float, float* @y, align 4 339 %conv98 = fpext float %109 to double 340 %110 = load float, float* @ly, align 4 341 %conv99 = fpext float %110 to double 342 %111 = load float, float* @ret_sf, align 4 343 %112 = load float, float* @lret_sf, align 4 344 %cmp100 = fcmp oeq float %111, %112 345 br i1 %cmp100, label %land.lhs.true102, label %land.end108 346 347 land.lhs.true102: ; preds = %land.end92 348 %113 = load double, double* @xd, align 8 349 %114 = load double, double* @lxd, align 8 350 %cmp103 = fcmp oeq double %113, %114 351 br i1 %cmp103, label %land.rhs105, label %land.end108 352 353 land.rhs105: ; preds = %land.lhs.true102 354 %115 = load float, float* @y, align 4 355 %116 = load float, float* @ly, align 4 356 %cmp106 = fcmp oeq float %115, %116 357 br label %land.end108 358 359 land.end108: ; preds = %land.rhs105, %land.lhs.true102, %land.end92 360 %117 = phi i1 [ false, %land.lhs.true102 ], [ false, %land.end92 ], [ %cmp106, %land.rhs105 ] 361 %land.ext109 = zext i1 %117 to i32 362 %call110 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %conv96, double %conv97, double %107, double %108, double %conv98, double %conv99, i32 %land.ext109) 363 call void @clear() 364 store float 3.987721e+06, float* @ret_sf, align 4 365 store double 0x3FF1F49F6DDDC2D8, double* @lxd, align 8 366 store double 0x409129F306A2B170, double* @lyd, align 8 367 %118 = load double, double* @lxd, align 8 368 %119 = load double, double* @lyd, align 8 369 %call111 = call float @sf_df_df(double %118, double %119) 370 store float %call111, float* @lret_sf, align 4 371 %120 = load float, float* @ret_sf, align 4 372 %conv112 = fpext float %120 to double 373 %121 = load float, float* @lret_sf, align 4 374 %conv113 = fpext float %121 to double 375 %122 = load double, double* @xd, align 8 376 %123 = load double, double* @lxd, align 8 377 %124 = load double, double* @yd, align 8 378 %125 = load double, double* @lyd, align 8 379 %126 = load float, float* @ret_sf, align 4 380 %127 = load float, float* @lret_sf, align 4 381 %cmp114 = fcmp oeq float %126, %127 382 br i1 %cmp114, label %land.lhs.true116, label %land.end122 383 384 land.lhs.true116: ; preds = %land.end108 385 %128 = load double, double* @xd, align 8 386 %129 = load double, double* @lxd, align 8 387 %cmp117 = fcmp oeq double %128, %129 388 br i1 %cmp117, label %land.rhs119, label %land.end122 389 390 land.rhs119: ; preds = %land.lhs.true116 391 %130 = load double, double* @yd, align 8 392 %131 = load double, double* @lyd, align 8 393 %cmp120 = fcmp oeq double %130, %131 394 br label %land.end122 395 396 land.end122: ; preds = %land.rhs119, %land.lhs.true116, %land.end108 397 %132 = phi i1 [ false, %land.lhs.true116 ], [ false, %land.end108 ], [ %cmp120, %land.rhs119 ] 398 %land.ext123 = zext i1 %132 to i32 399 %call124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %conv112, double %conv113, double %122, double %123, double %124, double %125, i32 %land.ext123) 400 call void @clear() 401 store double 1.561234e+01, double* @ret_df, align 8 402 %call125 = call double @df_v() 403 store double %call125, double* @lret_df, align 8 404 %133 = load double, double* @ret_df, align 8 405 %134 = load double, double* @lret_df, align 8 406 %135 = load double, double* @ret_df, align 8 407 %136 = load double, double* @lret_df, align 8 408 %cmp126 = fcmp oeq double %135, %136 409 %conv127 = zext i1 %cmp126 to i32 410 %call128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i32 0, i32 0), double %133, double %134, i32 %conv127) 411 call void @clear() 412 store double 1.345873e+01, double* @ret_df, align 8 413 store float 3.434520e+05, float* @lx, align 4 414 %137 = load float, float* @lx, align 4 415 %call129 = call double @df_sf(float %137) 416 store double %call129, double* @lret_df, align 8 417 %138 = load double, double* @ret_df, align 8 418 %139 = load double, double* @lret_df, align 8 419 %140 = load float, float* @x, align 4 420 %conv130 = fpext float %140 to double 421 %141 = load float, float* @lx, align 4 422 %conv131 = fpext float %141 to double 423 %142 = load double, double* @ret_df, align 8 424 %143 = load double, double* @lret_df, align 8 425 %cmp132 = fcmp oeq double %142, %143 426 %conv133 = zext i1 %cmp132 to i32 427 %144 = load float, float* @x, align 4 428 %145 = load float, float* @lx, align 4 429 %cmp134 = fcmp oeq float %144, %145 430 %conv135 = zext i1 %cmp134 to i32 431 %and136 = and i32 %conv133, %conv135 432 %call137 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %138, double %139, double %conv130, double %conv131, i32 %and136) 433 call void @clear() 434 store double 0x4084F3AB7AA25D8D, double* @ret_df, align 8 435 store double 0x4114F671D2F1A9FC, double* @lxd, align 8 436 %146 = load double, double* @lxd, align 8 437 %call138 = call double @df_df(double %146) 438 store double %call138, double* @lret_df, align 8 439 %147 = load double, double* @ret_df, align 8 440 %148 = load double, double* @lret_df, align 8 441 %149 = load double, double* @xd, align 8 442 %150 = load double, double* @lxd, align 8 443 %151 = load double, double* @ret_df, align 8 444 %152 = load double, double* @lret_df, align 8 445 %cmp139 = fcmp oeq double %151, %152 446 %conv140 = zext i1 %cmp139 to i32 447 %153 = load double, double* @xd, align 8 448 %154 = load double, double* @lxd, align 8 449 %cmp141 = fcmp oeq double %153, %154 450 %conv142 = zext i1 %cmp141 to i32 451 %and143 = and i32 %conv140, %conv142 452 %call144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str1, i32 0, i32 0), double %147, double %148, double %149, double %150, i32 %and143) 453 call void @clear() 454 store double 6.781956e+03, double* @ret_df, align 8 455 store float 4.445500e+03, float* @lx, align 4 456 store float 0x4068ACCCC0000000, float* @ly, align 4 457 %155 = load float, float* @lx, align 4 458 %156 = load float, float* @ly, align 4 459 %call145 = call double @df_sf_sf(float %155, float %156) 460 store double %call145, double* @lret_df, align 8 461 %157 = load double, double* @ret_df, align 8 462 %158 = load double, double* @lret_df, align 8 463 %159 = load float, float* @x, align 4 464 %conv146 = fpext float %159 to double 465 %160 = load float, float* @lx, align 4 466 %conv147 = fpext float %160 to double 467 %161 = load float, float* @y, align 4 468 %conv148 = fpext float %161 to double 469 %162 = load float, float* @ly, align 4 470 %conv149 = fpext float %162 to double 471 %163 = load double, double* @ret_df, align 8 472 %164 = load double, double* @lret_df, align 8 473 %cmp150 = fcmp oeq double %163, %164 474 br i1 %cmp150, label %land.lhs.true152, label %land.end158 475 476 land.lhs.true152: ; preds = %land.end122 477 %165 = load float, float* @x, align 4 478 %166 = load float, float* @lx, align 4 479 %cmp153 = fcmp oeq float %165, %166 480 br i1 %cmp153, label %land.rhs155, label %land.end158 481 482 land.rhs155: ; preds = %land.lhs.true152 483 %167 = load float, float* @y, align 4 484 %168 = load float, float* @ly, align 4 485 %cmp156 = fcmp oeq float %167, %168 486 br label %land.end158 487 488 land.end158: ; preds = %land.rhs155, %land.lhs.true152, %land.end122 489 %169 = phi i1 [ false, %land.lhs.true152 ], [ false, %land.end122 ], [ %cmp156, %land.rhs155 ] 490 %land.ext159 = zext i1 %169 to i32 491 %call160 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %157, double %158, double %conv146, double %conv147, double %conv148, double %conv149, i32 %land.ext159) 492 call void @clear() 493 store double 1.889130e+05, double* @ret_df, align 8 494 store float 9.111450e+05, float* @lx, align 4 495 store double 0x4185320A58000000, double* @lyd, align 8 496 %170 = load float, float* @lx, align 4 497 %171 = load double, double* @lyd, align 8 498 %call161 = call double @df_sf_df(float %170, double %171) 499 store double %call161, double* @lret_df, align 8 500 %172 = load double, double* @ret_df, align 8 501 %173 = load double, double* @lret_df, align 8 502 %174 = load float, float* @x, align 4 503 %conv162 = fpext float %174 to double 504 %175 = load float, float* @lx, align 4 505 %conv163 = fpext float %175 to double 506 %176 = load double, double* @yd, align 8 507 %177 = load double, double* @lyd, align 8 508 %178 = load double, double* @ret_df, align 8 509 %179 = load double, double* @lret_df, align 8 510 %cmp164 = fcmp oeq double %178, %179 511 br i1 %cmp164, label %land.lhs.true166, label %land.end172 512 513 land.lhs.true166: ; preds = %land.end158 514 %180 = load float, float* @x, align 4 515 %181 = load float, float* @lx, align 4 516 %cmp167 = fcmp oeq float %180, %181 517 br i1 %cmp167, label %land.rhs169, label %land.end172 518 519 land.rhs169: ; preds = %land.lhs.true166 520 %182 = load double, double* @yd, align 8 521 %183 = load double, double* @lyd, align 8 522 %cmp170 = fcmp oeq double %182, %183 523 br label %land.end172 524 525 land.end172: ; preds = %land.rhs169, %land.lhs.true166, %land.end158 526 %184 = phi i1 [ false, %land.lhs.true166 ], [ false, %land.end158 ], [ %cmp170, %land.rhs169 ] 527 %land.ext173 = zext i1 %184 to i32 528 %call174 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %172, double %173, double %conv162, double %conv163, double %176, double %177, i32 %land.ext173) 529 call void @clear() 530 store double 0x418B2DB900000000, double* @ret_df, align 8 531 store double 0x41B1EF2ED3000000, double* @lxd, align 8 532 store float 1.244562e+06, float* @ly, align 4 533 %185 = load double, double* @lxd, align 8 534 %186 = load float, float* @ly, align 4 535 %call175 = call double @df_df_sf(double %185, float %186) 536 store double %call175, double* @lret_df, align 8 537 %187 = load double, double* @ret_df, align 8 538 %188 = load double, double* @lret_df, align 8 539 %189 = load double, double* @xd, align 8 540 %190 = load double, double* @lxd, align 8 541 %191 = load float, float* @y, align 4 542 %conv176 = fpext float %191 to double 543 %192 = load float, float* @ly, align 4 544 %conv177 = fpext float %192 to double 545 %193 = load double, double* @ret_df, align 8 546 %194 = load double, double* @lret_df, align 8 547 %cmp178 = fcmp oeq double %193, %194 548 br i1 %cmp178, label %land.lhs.true180, label %land.end186 549 550 land.lhs.true180: ; preds = %land.end172 551 %195 = load double, double* @xd, align 8 552 %196 = load double, double* @lxd, align 8 553 %cmp181 = fcmp oeq double %195, %196 554 br i1 %cmp181, label %land.rhs183, label %land.end186 555 556 land.rhs183: ; preds = %land.lhs.true180 557 %197 = load float, float* @y, align 4 558 %198 = load float, float* @ly, align 4 559 %cmp184 = fcmp oeq float %197, %198 560 br label %land.end186 561 562 land.end186: ; preds = %land.rhs183, %land.lhs.true180, %land.end172 563 %199 = phi i1 [ false, %land.lhs.true180 ], [ false, %land.end172 ], [ %cmp184, %land.rhs183 ] 564 %land.ext187 = zext i1 %199 to i32 565 %call188 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %187, double %188, double %189, double %190, double %conv176, double %conv177, i32 %land.ext187) 566 call void @clear() 567 store double 3.987721e+06, double* @ret_df, align 8 568 store double 5.223560e+00, double* @lxd, align 8 569 store double 0x40B7D37CC1A8AC5C, double* @lyd, align 8 570 %200 = load double, double* @lxd, align 8 571 %201 = load double, double* @lyd, align 8 572 %call189 = call double @df_df_df(double %200, double %201) 573 store double %call189, double* @lret_df, align 8 574 %202 = load double, double* @ret_df, align 8 575 %203 = load double, double* @lret_df, align 8 576 %204 = load double, double* @xd, align 8 577 %205 = load double, double* @lxd, align 8 578 %206 = load double, double* @yd, align 8 579 %207 = load double, double* @lyd, align 8 580 %208 = load double, double* @ret_df, align 8 581 %209 = load double, double* @lret_df, align 8 582 %cmp190 = fcmp oeq double %208, %209 583 br i1 %cmp190, label %land.lhs.true192, label %land.end198 584 585 land.lhs.true192: ; preds = %land.end186 586 %210 = load double, double* @xd, align 8 587 %211 = load double, double* @lxd, align 8 588 %cmp193 = fcmp oeq double %210, %211 589 br i1 %cmp193, label %land.rhs195, label %land.end198 590 591 land.rhs195: ; preds = %land.lhs.true192 592 %212 = load double, double* @yd, align 8 593 %213 = load double, double* @lyd, align 8 594 %cmp196 = fcmp oeq double %212, %213 595 br label %land.end198 596 597 land.end198: ; preds = %land.rhs195, %land.lhs.true192, %land.end186 598 %214 = phi i1 [ false, %land.lhs.true192 ], [ false, %land.end186 ], [ %cmp196, %land.rhs195 ] 599 %land.ext199 = zext i1 %214 to i32 600 %call200 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str2, i32 0, i32 0), double %202, double %203, double %204, double %205, double %206, double %207, i32 %land.ext199) 601 call void @clear() 602 store float 4.500000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 603 store float 7.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 604 %call201 = call { float, float } @sc_v() 605 %215 = extractvalue { float, float } %call201, 0 606 %216 = extractvalue { float, float } %call201, 1 607 store float %215, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 608 store float %216, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 609 %ret_sc.real = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 610 %ret_sc.imag = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 611 %conv202 = fpext float %ret_sc.real to double 612 %conv203 = fpext float %ret_sc.imag to double 613 %ret_sc.real204 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 614 %ret_sc.imag205 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 615 %conv206 = fpext float %ret_sc.real204 to double 616 %conv207 = fpext float %ret_sc.imag205 to double 617 %lret_sc.real = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 618 %lret_sc.imag = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 619 %conv208 = fpext float %lret_sc.real to double 620 %conv209 = fpext float %lret_sc.imag to double 621 %lret_sc.real210 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 622 %lret_sc.imag211 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 623 %conv212 = fpext float %lret_sc.real210 to double 624 %conv213 = fpext float %lret_sc.imag211 to double 625 %ret_sc.real214 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 626 %ret_sc.imag215 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 627 %lret_sc.real216 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 628 %lret_sc.imag217 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 629 %cmp.r = fcmp oeq float %ret_sc.real214, %lret_sc.real216 630 %cmp.i = fcmp oeq float %ret_sc.imag215, %lret_sc.imag217 631 %and.ri = and i1 %cmp.r, %cmp.i 632 %conv218 = zext i1 %and.ri to i32 633 %call219 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str3, i32 0, i32 0), double %conv202, double %conv207, double %conv208, double %conv213, i32 %conv218) 634 call void @clear() 635 store float 0x3FF7A99300000000, float* @lx, align 4 636 store float 4.500000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 637 store float 7.000000e+00, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 638 %217 = load float, float* @lx, align 4 639 %call220 = call { float, float } @sc_sf(float %217) 640 %218 = extractvalue { float, float } %call220, 0 641 %219 = extractvalue { float, float } %call220, 1 642 store float %218, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 643 store float %219, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 644 %ret_sc.real221 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 645 %ret_sc.imag222 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 646 %conv223 = fpext float %ret_sc.real221 to double 647 %conv224 = fpext float %ret_sc.imag222 to double 648 %ret_sc.real225 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 649 %ret_sc.imag226 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 650 %conv227 = fpext float %ret_sc.real225 to double 651 %conv228 = fpext float %ret_sc.imag226 to double 652 %lret_sc.real229 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 653 %lret_sc.imag230 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 654 %conv231 = fpext float %lret_sc.real229 to double 655 %conv232 = fpext float %lret_sc.imag230 to double 656 %lret_sc.real233 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 657 %lret_sc.imag234 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 658 %conv235 = fpext float %lret_sc.real233 to double 659 %conv236 = fpext float %lret_sc.imag234 to double 660 %220 = load float, float* @x, align 4 661 %conv237 = fpext float %220 to double 662 %221 = load float, float* @lx, align 4 663 %conv238 = fpext float %221 to double 664 %ret_sc.real239 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 0) 665 %ret_sc.imag240 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @ret_sc, i32 0, i32 1) 666 %lret_sc.real241 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 0) 667 %lret_sc.imag242 = load float, float* getelementptr inbounds ({ float, float }, { float, float }* @lret_sc, i32 0, i32 1) 668 %cmp.r243 = fcmp oeq float %ret_sc.real239, %lret_sc.real241 669 %cmp.i244 = fcmp oeq float %ret_sc.imag240, %lret_sc.imag242 670 %and.ri245 = and i1 %cmp.r243, %cmp.i244 671 br i1 %and.ri245, label %land.rhs247, label %land.end250 672 673 land.rhs247: ; preds = %land.end198 674 %222 = load float, float* @x, align 4 675 %223 = load float, float* @lx, align 4 676 %cmp248 = fcmp oeq float %222, %223 677 br label %land.end250 678 679 land.end250: ; preds = %land.rhs247, %land.end198 680 %224 = phi i1 [ false, %land.end198 ], [ %cmp248, %land.rhs247 ] 681 %land.ext251 = zext i1 %224 to i32 682 %call252 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str4, i32 0, i32 0), double %conv223, double %conv228, double %conv231, double %conv236, double %conv237, double %conv238, i32 %land.ext251) 683 call void @clear() 684 store double 1.234500e+03, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 685 store double 7.677000e+03, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 686 %call253 = call { double, double } @dc_v() 687 %225 = extractvalue { double, double } %call253, 0 688 %226 = extractvalue { double, double } %call253, 1 689 store double %225, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 690 store double %226, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 691 %ret_dc.real = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 692 %ret_dc.imag = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 693 %ret_dc.real254 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 694 %ret_dc.imag255 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 695 %lret_dc.real = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 696 %lret_dc.imag = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 697 %lret_dc.real256 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 698 %lret_dc.imag257 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 699 %ret_dc.real258 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 700 %ret_dc.imag259 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 701 %lret_dc.real260 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 702 %lret_dc.imag261 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 703 %cmp.r262 = fcmp oeq double %ret_dc.real258, %lret_dc.real260 704 %cmp.i263 = fcmp oeq double %ret_dc.imag259, %lret_dc.imag261 705 %and.ri264 = and i1 %cmp.r262, %cmp.i263 706 %conv265 = zext i1 %and.ri264 to i32 707 %call266 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str3, i32 0, i32 0), double %ret_dc.real, double %ret_dc.imag255, double %lret_dc.real, double %lret_dc.imag257, i32 %conv265) 708 call void @clear() 709 store double 0x40AAF6F532617C1C, double* @lxd, align 8 710 store double 4.444500e+03, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 711 store double 7.888000e+03, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 712 %227 = load float, float* @lx, align 4 713 %call267 = call { double, double } @dc_sf(float %227) 714 %228 = extractvalue { double, double } %call267, 0 715 %229 = extractvalue { double, double } %call267, 1 716 store double %228, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 717 store double %229, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 718 %ret_dc.real268 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 719 %ret_dc.imag269 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 720 %ret_dc.real270 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 721 %ret_dc.imag271 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 722 %lret_dc.real272 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 723 %lret_dc.imag273 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 724 %lret_dc.real274 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 725 %lret_dc.imag275 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 726 %230 = load float, float* @x, align 4 727 %conv276 = fpext float %230 to double 728 %231 = load float, float* @lx, align 4 729 %conv277 = fpext float %231 to double 730 %ret_dc.real278 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 0) 731 %ret_dc.imag279 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @ret_dc, i32 0, i32 1) 732 %lret_dc.real280 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 0) 733 %lret_dc.imag281 = load double, double* getelementptr inbounds ({ double, double }, { double, double }* @lret_dc, i32 0, i32 1) 734 %cmp.r282 = fcmp oeq double %ret_dc.real278, %lret_dc.real280 735 %cmp.i283 = fcmp oeq double %ret_dc.imag279, %lret_dc.imag281 736 %and.ri284 = and i1 %cmp.r282, %cmp.i283 737 br i1 %and.ri284, label %land.rhs286, label %land.end289 738 739 land.rhs286: ; preds = %land.end250 740 %232 = load float, float* @x, align 4 741 %233 = load float, float* @lx, align 4 742 %cmp287 = fcmp oeq float %232, %233 743 br label %land.end289 744 745 land.end289: ; preds = %land.rhs286, %land.end250 746 %234 = phi i1 [ false, %land.end250 ], [ %cmp287, %land.rhs286 ] 747 %land.ext290 = zext i1 %234 to i32 748 %call291 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str4, i32 0, i32 0), double %ret_dc.real268, double %ret_dc.imag271, double %lret_dc.real272, double %lret_dc.imag275, double %conv276, double %conv277, i32 %land.ext290) 749 %235 = load i32, i32* %retval 750 ret i32 %235 751 } 752 753 declare void @v_sf(float) #1 754 ; stel: .section .mips16.call.fp.v_sf,"ax",@progbits 755 ; stel: .ent __call_stub_fp_v_sf 756 ; stel: mtc1 $4,$f12 757 ; stel: lui $25,%hi(v_sf) 758 ; stel: addiu $25,$25,%lo(v_sf) 759 ; stel: jr $25 760 ; stel: .end __call_stub_fp_v_sf 761 762 declare i32 @printf(i8*, ...) #1 763 764 declare void @v_df(double) #1 765 ; stel: .section .mips16.call.fp.v_df,"ax",@progbits 766 ; stel: .ent __call_stub_fp_v_df 767 ; stel: #APP 768 ; setl: .set reorder 769 ; stel: mtc1 $4,$f12 770 ; stel: mtc1 $5,$f13 771 ; stel: lui $25,%hi(v_df) 772 ; stel: addiu $25,$25,%lo(v_df) 773 ; stel: jr $25 774 ; stel: .end __call_stub_fp_v_df 775 776 declare void @v_sf_sf(float, float) #1 777 ; stel: .section .mips16.call.fp.v_sf_sf,"ax",@progbits 778 ; stel: .ent __call_stub_fp_v_sf_sf 779 ; stel: mtc1 $4,$f12 780 ; stel: mtc1 $5,$f14 781 ; stel: lui $25,%hi(v_sf_sf) 782 ; stel: addiu $25,$25,%lo(v_sf_sf) 783 ; stel: jr $25 784 ; stel: .end __call_stub_fp_v_sf_sf 785 786 declare void @v_sf_df(float, double) #1 787 ; stel: .section .mips16.call.fp.v_sf_df,"ax",@progbits 788 ; stel: .ent __call_stub_fp_v_sf_df 789 ; stel: mtc1 $4,$f12 790 ; stel: mtc1 $6,$f14 791 ; stel: mtc1 $7,$f15 792 ; stel: lui $25,%hi(v_sf_df) 793 ; stel: addiu $25,$25,%lo(v_sf_df) 794 ; stel: jr $25 795 ; stel: .end __call_stub_fp_v_sf_df 796 797 declare void @v_df_sf(double, float) #1 798 ; stel: .section .mips16.call.fp.v_df_sf,"ax",@progbits 799 ; stel: .ent __call_stub_fp_v_df_sf 800 ; stel: mtc1 $4,$f12 801 ; stel: mtc1 $5,$f13 802 ; stel: mtc1 $6,$f14 803 ; stel: lui $25,%hi(v_df_sf) 804 ; stel: addiu $25,$25,%lo(v_df_sf) 805 ; stel: jr $25 806 ; stel: .end __call_stub_fp_v_df_sf 807 808 declare void @v_df_df(double, double) #1 809 ; stel: .section .mips16.call.fp.v_df_df,"ax",@progbits 810 ; stel: .ent __call_stub_fp_v_df_df 811 ; stel: mtc1 $4,$f12 812 ; stel: mtc1 $5,$f13 813 ; stel: mtc1 $6,$f14 814 ; stel: mtc1 $7,$f15 815 ; stel: lui $25,%hi(v_df_df) 816 ; stel: addiu $25,$25,%lo(v_df_df) 817 ; stel: jr $25 818 ; stel: .end __call_stub_fp_v_df_df 819 820 declare float @sf_v() #1 821 ; stel: .section .mips16.call.fp.sf_v,"ax",@progbits 822 ; stel: .ent __call_stub_fp_sf_v 823 ; stel: move $18, $31 824 ; stel: jal sf_v 825 ; stel: mfc1 $2,$f0 826 ; stel: jr $18 827 ; stel: .end __call_stub_fp_sf_v 828 829 declare float @sf_sf(float) #1 830 ; stel: .section .mips16.call.fp.sf_sf,"ax",@progbits 831 ; stel: .ent __call_stub_fp_sf_sf 832 ; stel: mtc1 $4,$f12 833 ; stel: move $18, $31 834 ; stel: jal sf_sf 835 ; stel: mfc1 $2,$f0 836 ; stel: jr $18 837 ; stel: .end __call_stub_fp_sf_sf 838 839 declare float @sf_df(double) #1 840 ; stel: .section .mips16.call.fp.sf_df,"ax",@progbits 841 ; stel: .ent __call_stub_fp_sf_df 842 ; stel: mtc1 $4,$f12 843 ; stel: mtc1 $5,$f13 844 ; stel: move $18, $31 845 ; stel: jal sf_df 846 ; stel: mfc1 $2,$f0 847 ; stel: jr $18 848 ; stel: .end __call_stub_fp_sf_df 849 850 declare float @sf_sf_sf(float, float) #1 851 ; stel: .section .mips16.call.fp.sf_sf_sf,"ax",@progbits 852 ; stel: .ent __call_stub_fp_sf_sf_sf 853 ; stel: mtc1 $4,$f12 854 ; stel: mtc1 $5,$f14 855 ; stel: move $18, $31 856 ; stel: jal sf_sf_sf 857 ; stel: mfc1 $2,$f0 858 ; stel: jr $18 859 ; stel: .end __call_stub_fp_sf_sf_sf 860 861 declare float @sf_sf_df(float, double) #1 862 ; stel: .section .mips16.call.fp.sf_sf_df,"ax",@progbits 863 ; stel: .ent __call_stub_fp_sf_sf_df 864 ; stel: mtc1 $4,$f12 865 ; stel: mtc1 $6,$f14 866 ; stel: mtc1 $7,$f15 867 ; stel: move $18, $31 868 ; stel: jal sf_sf_df 869 ; stel: mfc1 $2,$f0 870 ; stel: jr $18 871 ; stel: .end __call_stub_fp_sf_sf_df 872 873 declare float @sf_df_sf(double, float) #1 874 ; stel: .section .mips16.call.fp.sf_df_sf,"ax",@progbits 875 ; stel: .ent __call_stub_fp_sf_df_sf 876 ; stel: mtc1 $4,$f12 877 ; stel: mtc1 $5,$f13 878 ; stel: mtc1 $6,$f14 879 ; stel: move $18, $31 880 ; stel: jal sf_df_sf 881 ; stel: mfc1 $2,$f0 882 ; stel: jr $18 883 ; stel: .end __call_stub_fp_sf_df_sf 884 885 declare float @sf_df_df(double, double) #1 886 ; stel: .section .mips16.call.fp.sf_df_df,"ax",@progbits 887 ; stel: .ent __call_stub_fp_sf_df_df 888 ; stel: mtc1 $4,$f12 889 ; stel: mtc1 $5,$f13 890 ; stel: mtc1 $6,$f14 891 ; stel: mtc1 $7,$f15 892 ; stel: move $18, $31 893 ; stel: jal sf_df_df 894 ; stel: mfc1 $2,$f0 895 ; stel: jr $18 896 ; stel: .end __call_stub_fp_sf_df_df 897 898 declare double @df_v() #1 899 ; stel: .section .mips16.call.fp.df_v,"ax",@progbits 900 ; stel: .ent __call_stub_fp_df_v 901 ; stel: move $18, $31 902 ; stel: jal df_v 903 ; stel: mfc1 $2,$f0 904 ; stel: mfc1 $3,$f1 905 ; stel: jr $18 906 ; stel: .end __call_stub_fp_df_v 907 908 declare double @df_sf(float) #1 909 ; stel: .section .mips16.call.fp.df_sf,"ax",@progbits 910 ; stel: .ent __call_stub_fp_df_sf 911 ; stel: mtc1 $4,$f12 912 ; stel: move $18, $31 913 ; stel: jal df_sf 914 ; stel: mfc1 $2,$f0 915 ; stel: mfc1 $3,$f1 916 ; stel: jr $18 917 ; stel: .end __call_stub_fp_df_sf 918 919 declare double @df_df(double) #1 920 ; stel: .section .mips16.call.fp.df_df,"ax",@progbits 921 ; stel: .ent __call_stub_fp_df_df 922 ; stel: mtc1 $4,$f12 923 ; stel: mtc1 $5,$f13 924 ; stel: move $18, $31 925 ; stel: jal df_df 926 ; stel: mfc1 $2,$f0 927 ; stel: mfc1 $3,$f1 928 ; stel: jr $18 929 ; stel: .end __call_stub_fp_df_df 930 931 declare double @df_sf_sf(float, float) #1 932 ; stel: .section .mips16.call.fp.df_sf_sf,"ax",@progbits 933 ; stel: .ent __call_stub_fp_df_sf_sf 934 ; stel: mtc1 $4,$f12 935 ; stel: mtc1 $5,$f14 936 ; stel: move $18, $31 937 ; stel: jal df_sf_sf 938 ; stel: mfc1 $2,$f0 939 ; stel: mfc1 $3,$f1 940 ; stel: jr $18 941 ; stel: .end __call_stub_fp_df_sf_sf 942 943 declare double @df_sf_df(float, double) #1 944 ; stel: .section .mips16.call.fp.df_sf_df,"ax",@progbits 945 ; stel: .ent __call_stub_fp_df_sf_df 946 ; stel: mtc1 $4,$f12 947 ; stel: mtc1 $6,$f14 948 ; stel: mtc1 $7,$f15 949 ; stel: move $18, $31 950 ; stel: jal df_sf_df 951 ; stel: mfc1 $2,$f0 952 ; stel: mfc1 $3,$f1 953 ; stel: jr $18 954 ; stel: .end __call_stub_fp_df_sf_df 955 956 declare double @df_df_sf(double, float) #1 957 ; stel: .section .mips16.call.fp.df_df_sf,"ax",@progbits 958 ; stel: .ent __call_stub_fp_df_df_sf 959 ; stel: mtc1 $4,$f12 960 ; stel: mtc1 $5,$f13 961 ; stel: mtc1 $6,$f14 962 ; stel: move $18, $31 963 ; stel: jal df_df_sf 964 ; stel: mfc1 $2,$f0 965 ; stel: mfc1 $3,$f1 966 ; stel: jr $18 967 ; stel: .end __call_stub_fp_df_df_sf 968 969 declare double @df_df_df(double, double) #1 970 ; stel: .section .mips16.call.fp.df_df_df,"ax",@progbits 971 ; stel: .ent __call_stub_fp_df_df_df 972 ; stel: mtc1 $4,$f12 973 ; stel: mtc1 $5,$f13 974 ; stel: mtc1 $6,$f14 975 ; stel: mtc1 $7,$f15 976 ; stel: move $18, $31 977 ; stel: jal df_df_df 978 ; stel: mfc1 $2,$f0 979 ; stel: mfc1 $3,$f1 980 ; stel: jr $18 981 ; stel: .end __call_stub_fp_df_df_df 982 983 declare { float, float } @sc_v() #1 984 ; stel: .section .mips16.call.fp.sc_v,"ax",@progbits 985 ; stel: .ent __call_stub_fp_sc_v 986 ; stel: move $18, $31 987 ; stel: jal sc_v 988 ; stel: mfc1 $2,$f0 989 ; stel: mfc1 $3,$f2 990 ; stel: jr $18 991 ; stel: .end __call_stub_fp_sc_v 992 993 declare { float, float } @sc_sf(float) #1 994 ; stel: .section .mips16.call.fp.sc_sf,"ax",@progbits 995 ; stel: .ent __call_stub_fp_sc_sf 996 ; stel: mtc1 $4,$f12 997 ; stel: move $18, $31 998 ; stel: jal sc_sf 999 ; stel: mfc1 $2,$f0 1000 ; stel: mfc1 $3,$f2 1001 ; stel: jr $18 1002 ; stel: .end __call_stub_fp_sc_sf 1003 1004 declare { double, double } @dc_v() #1 1005 ; stel: .section .mips16.call.fp.dc_v,"ax",@progbits 1006 ; stel: .ent __call_stub_fp_dc_v 1007 ; stel: move $18, $31 1008 ; stel: jal dc_v 1009 ; stel: mfc1 $4,$f2 1010 ; stel: mfc1 $5,$f3 1011 ; stel: mfc1 $2,$f0 1012 ; stel: mfc1 $3,$f1 1013 ; stel: jr $18 1014 ; stel: .end __call_stub_fp_dc_v 1015 1016 declare { double, double } @dc_sf(float) #1 1017 ; stel: .section .mips16.call.fp.dc_sf,"ax",@progbits 1018 ; stel: .ent __call_stub_fp_dc_sf 1019 ; stel: mtc1 $4,$f12 1020 ; stel: move $18, $31 1021 ; stel: jal dc_sf 1022 ; stel: mfc1 $4,$f2 1023 ; stel: mfc1 $5,$f3 1024 ; stel: mfc1 $2,$f0 1025 ; stel: mfc1 $3,$f1 1026 ; stel: jr $18 1027 ; stel: .end __call_stub_fp_dc_sf 1028 1029 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } 1030 attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } 1031