1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -passes=inline < %s | FileCheck %s 3; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -passes='cgscc(inline)' < %s | FileCheck %s 4 5define i32 @func_default() { 6; CHECK-LABEL: @func_default( 7; CHECK-NEXT: ret i32 0 8; 9 ret i32 0 10} 11 12define i32 @func_ieee_ieee() #0 { 13; CHECK-LABEL: @func_ieee_ieee( 14; CHECK-NEXT: ret i32 1 15; 16 ret i32 1 17} 18 19define i32 @func_psz_psz() #1 { 20; CHECK-LABEL: @func_psz_psz( 21; CHECK-NEXT: ret i32 2 22; 23 ret i32 2 24} 25 26define i32 @func_psz_ieee() #2 { 27; CHECK-LABEL: @func_psz_ieee( 28; CHECK-NEXT: ret i32 3 29; 30 ret i32 3 31} 32 33define i32 @func_ieee_psz() #3 { 34; CHECK-LABEL: @func_ieee_psz( 35; CHECK-NEXT: ret i32 4 36; 37 ret i32 4 38} 39 40define i32 @func_dynamic_dynamic() #4 { 41; CHECK-LABEL: @func_dynamic_dynamic( 42; CHECK-NEXT: ret i32 5 43; 44 ret i32 5 45} 46 47define i32 @func_dynamic_ieee() #5 { 48; CHECK-LABEL: @func_dynamic_ieee( 49; CHECK-NEXT: ret i32 6 50; 51 ret i32 6 52} 53 54define i32 @func_ieee_dynamic() #6 { 55; CHECK-LABEL: @func_ieee_dynamic( 56; CHECK-NEXT: ret i32 7 57; 58 ret i32 7 59} 60 61define i32 @func_psz_dynamic() #7 { 62; CHECK-LABEL: @func_psz_dynamic( 63; CHECK-NEXT: ret i32 8 64; 65 ret i32 8 66} 67 68define i32 @func_dynamic_psz() #8 { 69; CHECK-LABEL: @func_dynamic_psz( 70; CHECK-NEXT: ret i32 9 71; 72 ret i32 9 73} 74 75define i32 @call_default_from_psz_psz() #1 { 76; CHECK-LABEL: @call_default_from_psz_psz( 77; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_default() 78; CHECK-NEXT: ret i32 [[CALL]] 79; 80 %call = call i32 @func_default() 81 ret i32 %call 82} 83 84define i32 @call_ieee_ieee_from_ieee_ieee() #0 { 85; CHECK-LABEL: @call_ieee_ieee_from_ieee_ieee( 86; CHECK-NEXT: ret i32 1 87; 88 %call = call i32 @func_ieee_ieee() 89 ret i32 %call 90} 91 92define i32 @call_ieee_ieee_from_psz_psz() #1 { 93; CHECK-LABEL: @call_ieee_ieee_from_psz_psz( 94; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 95; CHECK-NEXT: ret i32 [[CALL]] 96; 97 %call = call i32 @func_ieee_ieee() 98 ret i32 %call 99} 100 101define i32 @call_psz_psz_from_ieee_ieee() #0 { 102; CHECK-LABEL: @call_psz_psz_from_ieee_ieee( 103; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 104; CHECK-NEXT: ret i32 [[CALL]] 105; 106 %call = call i32 @func_psz_psz() 107 ret i32 %call 108} 109 110define i32 @call_psz_psz_from_psz_psz() #1 { 111; CHECK-LABEL: @call_psz_psz_from_psz_psz( 112; CHECK-NEXT: ret i32 2 113; 114 %call = call i32 @func_psz_psz() 115 ret i32 %call 116} 117 118define i32 @call_psz_ieee_from_psz_psz() #1 { 119; CHECK-LABEL: @call_psz_ieee_from_psz_psz( 120; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 121; CHECK-NEXT: ret i32 [[CALL]] 122; 123 %call = call i32 @func_psz_ieee() 124 ret i32 %call 125} 126 127define i32 @call_ieee_psz_from_psz_psz() #1 { 128; CHECK-LABEL: @call_ieee_psz_from_psz_psz( 129; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 130; CHECK-NEXT: ret i32 [[CALL]] 131; 132 %call = call i32 @func_ieee_psz() 133 ret i32 %call 134} 135 136define i32 @call_psz_ieee_from_ieee_ieee() #0 { 137; CHECK-LABEL: @call_psz_ieee_from_ieee_ieee( 138; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 139; CHECK-NEXT: ret i32 [[CALL]] 140; 141 %call = call i32 @func_psz_ieee() 142 ret i32 %call 143} 144 145define i32 @call_ieee_psz_from_ieee_ieee() #0 { 146; CHECK-LABEL: @call_ieee_psz_from_ieee_ieee( 147; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 148; CHECK-NEXT: ret i32 [[CALL]] 149; 150 %call = call i32 @func_ieee_psz() 151 ret i32 %call 152} 153 154define i32 @call_ieee_ieee_from_psz_ieee() #2 { 155; CHECK-LABEL: @call_ieee_ieee_from_psz_ieee( 156; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 157; CHECK-NEXT: ret i32 [[CALL]] 158; 159 %call = call i32 @func_ieee_ieee() 160 ret i32 %call 161} 162 163define i32 @call_psz_ieee_from_psz_ieee() #2 { 164; CHECK-LABEL: @call_psz_ieee_from_psz_ieee( 165; CHECK-NEXT: ret i32 3 166; 167 %call = call i32 @func_psz_ieee() 168 ret i32 %call 169} 170 171define i32 @call_ieee_psz_from_psz_ieee() #2 { 172; CHECK-LABEL: @call_ieee_psz_from_psz_ieee( 173; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 174; CHECK-NEXT: ret i32 [[CALL]] 175; 176 %call = call i32 @func_ieee_psz() 177 ret i32 %call 178} 179 180define i32 @call_psz_psz_from_psz_ieee() #2 { 181; CHECK-LABEL: @call_psz_psz_from_psz_ieee( 182; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 183; CHECK-NEXT: ret i32 [[CALL]] 184; 185 %call = call i32 @func_psz_psz() 186 ret i32 %call 187} 188 189define i32 @call_ieee_ieee_from_ieee_psz() #3 { 190; CHECK-LABEL: @call_ieee_ieee_from_ieee_psz( 191; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 192; CHECK-NEXT: ret i32 [[CALL]] 193; 194 %call = call i32 @func_ieee_ieee() 195 ret i32 %call 196} 197 198define i32 @call_psz_ieee_from_ieee_psz() #3 { 199; CHECK-LABEL: @call_psz_ieee_from_ieee_psz( 200; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 201; CHECK-NEXT: ret i32 [[CALL]] 202; 203 %call = call i32 @func_psz_ieee() 204 ret i32 %call 205} 206 207define i32 @call_ieee_psz_from_ieee_psz() #3 { 208; CHECK-LABEL: @call_ieee_psz_from_ieee_psz( 209; CHECK-NEXT: ret i32 4 210; 211 %call = call i32 @func_ieee_psz() 212 ret i32 %call 213} 214 215define i32 @call_psz_psz_from_ieee_psz() #3 { 216; CHECK-LABEL: @call_psz_psz_from_ieee_psz( 217; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 218; CHECK-NEXT: ret i32 [[CALL]] 219; 220 %call = call i32 @func_psz_psz() 221 ret i32 %call 222} 223 224define i32 @call_dynamic_dynamic_from_ieee_ieee() #0 { 225; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_ieee( 226; CHECK-NEXT: ret i32 5 227; 228 %call = call i32 @func_dynamic_dynamic() 229 ret i32 %call 230} 231 232define i32 @call_dynamic_ieee_from_ieee_ieee() #0 { 233; CHECK-LABEL: @call_dynamic_ieee_from_ieee_ieee( 234; CHECK-NEXT: ret i32 6 235; 236 %call = call i32 @func_dynamic_ieee() 237 ret i32 %call 238} 239 240define i32 @call_ieee_dynamic_from_ieee_ieee() #0 { 241; CHECK-LABEL: @call_ieee_dynamic_from_ieee_ieee( 242; CHECK-NEXT: ret i32 7 243; 244 %call = call i32 @func_ieee_dynamic() 245 ret i32 %call 246} 247 248define i32 @call_dynamic_psz_from_ieee_ieee() #0 { 249; CHECK-LABEL: @call_dynamic_psz_from_ieee_ieee( 250; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz() 251; CHECK-NEXT: ret i32 [[CALL]] 252; 253 %call = call i32 @func_dynamic_psz() 254 ret i32 %call 255} 256 257define i32 @call_psz_dynamic_from_ieee_ieee() #0 { 258; CHECK-LABEL: @call_psz_dynamic_from_ieee_ieee( 259; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic() 260; CHECK-NEXT: ret i32 [[CALL]] 261; 262 %call = call i32 @func_psz_dynamic() 263 ret i32 %call 264} 265 266define i32 @call_dynamic_dynamic_from_psz_psz() #1 { 267; CHECK-LABEL: @call_dynamic_dynamic_from_psz_psz( 268; CHECK-NEXT: ret i32 5 269; 270 %call = call i32 @func_dynamic_dynamic() 271 ret i32 %call 272} 273 274define i32 @call_ieee_dynamic_from_psz_psz() #1 { 275; CHECK-LABEL: @call_ieee_dynamic_from_psz_psz( 276; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic() 277; CHECK-NEXT: ret i32 [[CALL]] 278; 279 %call = call i32 @func_ieee_dynamic() 280 ret i32 %call 281} 282 283define i32 @call_dynamic_ieee_from_psz_psz() #1 { 284; CHECK-LABEL: @call_dynamic_ieee_from_psz_psz( 285; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee() 286; CHECK-NEXT: ret i32 [[CALL]] 287; 288 %call = call i32 @func_dynamic_ieee() 289 ret i32 %call 290} 291 292define i32 @call_psz_dynamic_from_psz_psz() #1 { 293; CHECK-LABEL: @call_psz_dynamic_from_psz_psz( 294; CHECK-NEXT: ret i32 8 295; 296 %call = call i32 @func_psz_dynamic() 297 ret i32 %call 298} 299 300define i32 @call_dynamic_psz_from_psz_psz() #1 { 301; CHECK-LABEL: @call_dynamic_psz_from_psz_psz( 302; CHECK-NEXT: ret i32 9 303; 304 %call = call i32 @func_dynamic_psz() 305 ret i32 %call 306} 307 308define i32 @call_dynamic_dynamic_from_psz_ieee() #2 { 309; CHECK-LABEL: @call_dynamic_dynamic_from_psz_ieee( 310; CHECK-NEXT: ret i32 5 311; 312 %call = call i32 @func_dynamic_dynamic() 313 ret i32 %call 314} 315 316define i32 @call_dynamic_ieee_from_psz_ieee() #2 { 317; CHECK-LABEL: @call_dynamic_ieee_from_psz_ieee( 318; CHECK-NEXT: ret i32 6 319; 320 %call = call i32 @func_dynamic_ieee() 321 ret i32 %call 322} 323 324define i32 @call_ieee_dynamic_from_psz_ieee() #2 { 325; CHECK-LABEL: @call_ieee_dynamic_from_psz_ieee( 326; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic() 327; CHECK-NEXT: ret i32 [[CALL]] 328; 329 %call = call i32 @func_ieee_dynamic() 330 ret i32 %call 331} 332 333define i32 @call_dynamic_psz_from_psz_ieee() #2 { 334; CHECK-LABEL: @call_dynamic_psz_from_psz_ieee( 335; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz() 336; CHECK-NEXT: ret i32 [[CALL]] 337; 338 %call = call i32 @func_dynamic_psz() 339 ret i32 %call 340} 341 342define i32 @call_psz_dynamic_from_psz_ieee() #2 { 343; CHECK-LABEL: @call_psz_dynamic_from_psz_ieee( 344; CHECK-NEXT: ret i32 8 345; 346 %call = call i32 @func_psz_dynamic() 347 ret i32 %call 348} 349 350define i32 @call_dynamic_dynamic_from_ieee_psz() #3 { 351; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_psz( 352; CHECK-NEXT: ret i32 5 353; 354 %call = call i32 @func_dynamic_dynamic() 355 ret i32 %call 356} 357 358define i32 @call_ieee_dynamic_from_ieee_psz() #3 { 359; CHECK-LABEL: @call_ieee_dynamic_from_ieee_psz( 360; CHECK-NEXT: ret i32 7 361; 362 %call = call i32 @func_ieee_dynamic() 363 ret i32 %call 364} 365 366define i32 @call_dynamic_ieee_from_ieee_psz() #3 { 367; CHECK-LABEL: @call_dynamic_ieee_from_ieee_psz( 368; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee() 369; CHECK-NEXT: ret i32 [[CALL]] 370; 371 %call = call i32 @func_dynamic_ieee() 372 ret i32 %call 373} 374 375define i32 @call_dynamic_psz_from_ieee_psz() #3 { 376; CHECK-LABEL: @call_dynamic_psz_from_ieee_psz( 377; CHECK-NEXT: ret i32 9 378; 379 %call = call i32 @func_dynamic_psz() 380 ret i32 %call 381} 382 383define i32 @call_psz_dynamic_from_ieee_psz() #3 { 384; CHECK-LABEL: @call_psz_dynamic_from_ieee_psz( 385; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic() 386; CHECK-NEXT: ret i32 [[CALL]] 387; 388 %call = call i32 @func_psz_dynamic() 389 ret i32 %call 390} 391 392define i32 @call_dynamic_dynamic_from_dynamic_dynamic() #4 { 393; CHECK-LABEL: @call_dynamic_dynamic_from_dynamic_dynamic( 394; CHECK-NEXT: ret i32 5 395; 396 %call = call i32 @func_dynamic_dynamic() 397 ret i32 %call 398} 399 400define i32 @call_ieee_ieee_from_dynamic_dynamic() #4 { 401; CHECK-LABEL: @call_ieee_ieee_from_dynamic_dynamic( 402; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 403; CHECK-NEXT: ret i32 [[CALL]] 404; 405 %call = call i32 @func_ieee_ieee() 406 ret i32 %call 407} 408 409define i32 @call_ieee_dynamic_from_dynamic_dynamic() #4 { 410; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_dynamic( 411; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic() 412; CHECK-NEXT: ret i32 [[CALL]] 413; 414 %call = call i32 @func_ieee_dynamic() 415 ret i32 %call 416} 417 418define i32 @call_dynamic_ieee_from_dynamic_dynamic() #4 { 419; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_dynamic( 420; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee() 421; CHECK-NEXT: ret i32 [[CALL]] 422; 423 %call = call i32 @func_dynamic_ieee() 424 ret i32 %call 425} 426 427define i32 @call_psz_dynamic_from_dynamic_dynamic() #4 { 428; CHECK-LABEL: @call_psz_dynamic_from_dynamic_dynamic( 429; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic() 430; CHECK-NEXT: ret i32 [[CALL]] 431; 432 %call = call i32 @func_psz_dynamic() 433 ret i32 %call 434} 435 436define i32 @call_dynamic_psz_from_dynamic_dynamic() #4 { 437; CHECK-LABEL: @call_dynamic_psz_from_dynamic_dynamic( 438; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz() 439; CHECK-NEXT: ret i32 [[CALL]] 440; 441 %call = call i32 @func_dynamic_psz() 442 ret i32 %call 443} 444 445define i32 @call_psz_psz_from_dynamic_dynamic() #4 { 446; CHECK-LABEL: @call_psz_psz_from_dynamic_dynamic( 447; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 448; CHECK-NEXT: ret i32 [[CALL]] 449; 450 %call = call i32 @func_psz_psz() 451 ret i32 %call 452} 453 454define i32 @call_psz_ieee_from_dynamic_dynamic() #4 { 455; CHECK-LABEL: @call_psz_ieee_from_dynamic_dynamic( 456; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 457; CHECK-NEXT: ret i32 [[CALL]] 458; 459 %call = call i32 @func_psz_ieee() 460 ret i32 %call 461} 462 463define i32 @call_ieee_psz_from_dynamic_dynamic() #4 { 464; CHECK-LABEL: @call_ieee_psz_from_dynamic_dynamic( 465; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 466; CHECK-NEXT: ret i32 [[CALL]] 467; 468 %call = call i32 @func_ieee_psz() 469 ret i32 %call 470} 471 472define i32 @call_ieee_ieee_from_dynamic_ieee() #5 { 473; CHECK-LABEL: @call_ieee_ieee_from_dynamic_ieee( 474; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 475; CHECK-NEXT: ret i32 [[CALL]] 476; 477 %call = call i32 @func_ieee_ieee() 478 ret i32 %call 479} 480 481define i32 @call_ieee_dynamic_from_dynamic_ieee() #5 { 482; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_ieee( 483; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic() 484; CHECK-NEXT: ret i32 [[CALL]] 485; 486 %call = call i32 @func_ieee_dynamic() 487 ret i32 %call 488} 489 490define i32 @call_dynamic_ieee_from_dynamic_ieee() #5 { 491; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_ieee( 492; CHECK-NEXT: ret i32 6 493; 494 %call = call i32 @func_dynamic_ieee() 495 ret i32 %call 496} 497 498define i32 @call_psz_dynamic_from_dynamic_ieee() #5 { 499; CHECK-LABEL: @call_psz_dynamic_from_dynamic_ieee( 500; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic() 501; CHECK-NEXT: ret i32 [[CALL]] 502; 503 %call = call i32 @func_psz_dynamic() 504 ret i32 %call 505} 506 507define i32 @call_dynamic_psz_from_dynamic_ieee() #5 { 508; CHECK-LABEL: @call_dynamic_psz_from_dynamic_ieee( 509; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz() 510; CHECK-NEXT: ret i32 [[CALL]] 511; 512 %call = call i32 @func_dynamic_psz() 513 ret i32 %call 514} 515 516define i32 @call_psz_psz_from_dynamic_ieee() #5 { 517; CHECK-LABEL: @call_psz_psz_from_dynamic_ieee( 518; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 519; CHECK-NEXT: ret i32 [[CALL]] 520; 521 %call = call i32 @func_psz_psz() 522 ret i32 %call 523} 524 525define i32 @call_psz_ieee_from_dynamic_ieee() #5 { 526; CHECK-LABEL: @call_psz_ieee_from_dynamic_ieee( 527; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 528; CHECK-NEXT: ret i32 [[CALL]] 529; 530 %call = call i32 @func_psz_ieee() 531 ret i32 %call 532} 533 534define i32 @call_ieee_psz_from_dynamic_ieee() #5 { 535; CHECK-LABEL: @call_ieee_psz_from_dynamic_ieee( 536; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 537; CHECK-NEXT: ret i32 [[CALL]] 538; 539 %call = call i32 @func_ieee_psz() 540 ret i32 %call 541} 542 543define i32 @call_ieee_ieee_from_ieee_dynamic() #6 { 544; CHECK-LABEL: @call_ieee_ieee_from_ieee_dynamic( 545; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 546; CHECK-NEXT: ret i32 [[CALL]] 547; 548 %call = call i32 @func_ieee_ieee() 549 ret i32 %call 550} 551 552define i32 @call_ieee_dynamic_from_ieee_dynamic() #6 { 553; CHECK-LABEL: @call_ieee_dynamic_from_ieee_dynamic( 554; CHECK-NEXT: ret i32 7 555; 556 %call = call i32 @func_ieee_dynamic() 557 ret i32 %call 558} 559 560define i32 @call_dynamic_ieee_from_ieee_dynamic() #6 { 561; CHECK-LABEL: @call_dynamic_ieee_from_ieee_dynamic( 562; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee() 563; CHECK-NEXT: ret i32 [[CALL]] 564; 565 %call = call i32 @func_dynamic_ieee() 566 ret i32 %call 567} 568 569define i32 @call_dynamic_dynamic_from_ieee_dynamic() #6 { 570; CHECK-LABEL: @call_dynamic_dynamic_from_ieee_dynamic( 571; CHECK-NEXT: ret i32 5 572; 573 %call = call i32 @func_dynamic_dynamic() 574 ret i32 %call 575} 576 577define i32 @call_dynamic_psz_from_ieee_dynamic() #6 { 578; CHECK-LABEL: @call_dynamic_psz_from_ieee_dynamic( 579; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz() 580; CHECK-NEXT: ret i32 [[CALL]] 581; 582 %call = call i32 @func_dynamic_psz() 583 ret i32 %call 584} 585 586define i32 @call_psz_dynamic_from_ieee_dynamic() #6 { 587; CHECK-LABEL: @call_psz_dynamic_from_ieee_dynamic( 588; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic() 589; CHECK-NEXT: ret i32 [[CALL]] 590; 591 %call = call i32 @func_psz_dynamic() 592 ret i32 %call 593} 594 595define i32 @call_psz_psz_from_ieee_dynamic() #6 { 596; CHECK-LABEL: @call_psz_psz_from_ieee_dynamic( 597; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 598; CHECK-NEXT: ret i32 [[CALL]] 599; 600 %call = call i32 @func_psz_psz() 601 ret i32 %call 602} 603 604define i32 @call_psz_ieee_from_ieee_dynamic() #6 { 605; CHECK-LABEL: @call_psz_ieee_from_ieee_dynamic( 606; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 607; CHECK-NEXT: ret i32 [[CALL]] 608; 609 %call = call i32 @func_psz_ieee() 610 ret i32 %call 611} 612 613define i32 @call_ieee_psz_from_ieee_dynamic() #6 { 614; CHECK-LABEL: @call_ieee_psz_from_ieee_dynamic( 615; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 616; CHECK-NEXT: ret i32 [[CALL]] 617; 618 %call = call i32 @func_ieee_psz() 619 ret i32 %call 620} 621 622define i32 @call_ieee_ieee_from_psz_dynamic() #7 { 623; CHECK-LABEL: @call_ieee_ieee_from_psz_dynamic( 624; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 625; CHECK-NEXT: ret i32 [[CALL]] 626; 627 %call = call i32 @func_ieee_ieee() 628 ret i32 %call 629} 630 631define i32 @call_ieee_dynamic_from_psz_dynamic() #7 { 632; CHECK-LABEL: @call_ieee_dynamic_from_psz_dynamic( 633; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic() 634; CHECK-NEXT: ret i32 [[CALL]] 635; 636 %call = call i32 @func_ieee_dynamic() 637 ret i32 %call 638} 639 640define i32 @call_dynamic_ieee_from_psz_dynamic() #7 { 641; CHECK-LABEL: @call_dynamic_ieee_from_psz_dynamic( 642; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee() 643; CHECK-NEXT: ret i32 [[CALL]] 644; 645 %call = call i32 @func_dynamic_ieee() 646 ret i32 %call 647} 648 649define i32 @call_dynamic_psz_from_psz_dynamic() #7 { 650; CHECK-LABEL: @call_dynamic_psz_from_psz_dynamic( 651; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_psz() 652; CHECK-NEXT: ret i32 [[CALL]] 653; 654 %call = call i32 @func_dynamic_psz() 655 ret i32 %call 656} 657 658define i32 @call_psz_dynamic_from_psz_dynamic() #7 { 659; CHECK-LABEL: @call_psz_dynamic_from_psz_dynamic( 660; CHECK-NEXT: ret i32 8 661; 662 %call = call i32 @func_psz_dynamic() 663 ret i32 %call 664} 665 666define i32 @call_dynamic_dynamic_from_psz_dynamic() #7 { 667; CHECK-LABEL: @call_dynamic_dynamic_from_psz_dynamic( 668; CHECK-NEXT: ret i32 5 669; 670 %call = call i32 @func_dynamic_dynamic() 671 ret i32 %call 672} 673 674define i32 @call_psz_ieee_from_psz_dynamic() #7 { 675; CHECK-LABEL: @call_psz_ieee_from_psz_dynamic( 676; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 677; CHECK-NEXT: ret i32 [[CALL]] 678; 679 %call = call i32 @func_psz_ieee() 680 ret i32 %call 681} 682 683define i32 @call_ieee_psz_from_psz_dynamic() #7 { 684; CHECK-LABEL: @call_ieee_psz_from_psz_dynamic( 685; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 686; CHECK-NEXT: ret i32 [[CALL]] 687; 688 %call = call i32 @func_ieee_psz() 689 ret i32 %call 690} 691 692define i32 @call_psz_psz_from_psz_dynamic() #7 { 693; CHECK-LABEL: @call_psz_psz_from_psz_dynamic( 694; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 695; CHECK-NEXT: ret i32 [[CALL]] 696; 697 %call = call i32 @func_psz_psz() 698 ret i32 %call 699} 700 701define i32 @call_ieee_ieee_from_dynamic_psz() #8 { 702; CHECK-LABEL: @call_ieee_ieee_from_dynamic_psz( 703; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_ieee() 704; CHECK-NEXT: ret i32 [[CALL]] 705; 706 %call = call i32 @func_ieee_ieee() 707 ret i32 %call 708} 709 710define i32 @call_ieee_psz_from_dynamic_psz() #8 { 711; CHECK-LABEL: @call_ieee_psz_from_dynamic_psz( 712; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_psz() 713; CHECK-NEXT: ret i32 [[CALL]] 714; 715 %call = call i32 @func_ieee_psz() 716 ret i32 %call 717} 718 719define i32 @call_psz_ieee_from_dynamic_psz() #8 { 720; CHECK-LABEL: @call_psz_ieee_from_dynamic_psz( 721; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_ieee() 722; CHECK-NEXT: ret i32 [[CALL]] 723; 724 %call = call i32 @func_psz_ieee() 725 ret i32 %call 726} 727 728define i32 @call_dynamic_dynamic_from_dynamic_psz() #8 { 729; CHECK-LABEL: @call_dynamic_dynamic_from_dynamic_psz( 730; CHECK-NEXT: ret i32 5 731; 732 %call = call i32 @func_dynamic_dynamic() 733 ret i32 %call 734} 735 736define i32 @call_dynamic_psz_from_dynamic_psz() #8 { 737; CHECK-LABEL: @call_dynamic_psz_from_dynamic_psz( 738; CHECK-NEXT: ret i32 9 739; 740 %call = call i32 @func_dynamic_psz() 741 ret i32 %call 742} 743 744define i32 @call_psz_dynamic_from_dynamic_psz() #8 { 745; CHECK-LABEL: @call_psz_dynamic_from_dynamic_psz( 746; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_dynamic() 747; CHECK-NEXT: ret i32 [[CALL]] 748; 749 %call = call i32 @func_psz_dynamic() 750 ret i32 %call 751} 752 753define i32 @call_dynamic_ieee_from_dynamic_psz() #8 { 754; CHECK-LABEL: @call_dynamic_ieee_from_dynamic_psz( 755; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_dynamic_ieee() 756; CHECK-NEXT: ret i32 [[CALL]] 757; 758 %call = call i32 @func_dynamic_ieee() 759 ret i32 %call 760} 761 762define i32 @call_ieee_dynamic_from_dynamic_psz() #8 { 763; CHECK-LABEL: @call_ieee_dynamic_from_dynamic_psz( 764; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_ieee_dynamic() 765; CHECK-NEXT: ret i32 [[CALL]] 766; 767 %call = call i32 @func_ieee_dynamic() 768 ret i32 %call 769} 770 771define i32 @call_psz_psz_from_dynamic_psz() #8 { 772; CHECK-LABEL: @call_psz_psz_from_dynamic_psz( 773; CHECK-NEXT: [[CALL:%.*]] = call i32 @func_psz_psz() 774; CHECK-NEXT: ret i32 [[CALL]] 775; 776 %call = call i32 @func_psz_psz() 777 ret i32 %call 778} 779 780; -------------------------------------------------------------------- 781; denormal-fp-math-f32 782; -------------------------------------------------------------------- 783 784define i32 @func_dynamic_dynamic_f32() #9 { 785; CHECK-LABEL: @func_dynamic_dynamic_f32( 786; CHECK-NEXT: ret i32 10 787; 788 ret i32 10 789} 790 791define i32 @func_psz_psz_f32() #10 { 792; CHECK-LABEL: @func_psz_psz_f32( 793; CHECK-NEXT: ret i32 11 794; 795 ret i32 11 796} 797 798define i32 @func_dynamic_dynamic_psz_psz_f32() #12 { 799; CHECK-LABEL: @func_dynamic_dynamic_psz_psz_f32( 800; CHECK-NEXT: ret i32 12 801; 802 ret i32 12 803} 804 805define i32 @call_dynamic_dynamic_f32_from_psz_psz_f32() #10 { 806; CHECK-LABEL: @call_dynamic_dynamic_f32_from_psz_psz_f32( 807; CHECK-NEXT: ret i32 10 808; 809 %result = call i32 @func_dynamic_dynamic_f32() 810 ret i32 %result 811} 812 813define i32 @call_psz_psz_from_psz_psz_f32() #10 { 814; CHECK-LABEL: @call_psz_psz_from_psz_psz_f32( 815; CHECK-NEXT: ret i32 10 816; 817 %result = call i32 @func_dynamic_dynamic_f32() 818 ret i32 %result 819} 820 821define i32 @call_psz_psz_from_ieee_ieee_f32() #11 { 822; CHECK-LABEL: @call_psz_psz_from_ieee_ieee_f32( 823; CHECK-NEXT: [[RESULT:%.*]] = call i32 @func_psz_psz_f32() 824; CHECK-NEXT: ret i32 [[RESULT]] 825; 826 %result = call i32 @func_psz_psz_f32() 827 ret i32 %result 828} 829 830define i32 @call_dynamic_dynamic_from_psz_psz_f32() #10 { 831; CHECK-LABEL: @call_dynamic_dynamic_from_psz_psz_f32( 832; CHECK-NEXT: ret i32 5 833; 834 %result = call i32 @func_dynamic_dynamic() 835 ret i32 %result 836} 837 838define i32 @call_dynamic_dynamic_f32_from_psz_psz() #1 { 839; CHECK-LABEL: @call_dynamic_dynamic_f32_from_psz_psz( 840; CHECK-NEXT: [[RESULT:%.*]] = call i32 @func_dynamic_dynamic_f32() 841; CHECK-NEXT: ret i32 [[RESULT]] 842; 843 %result = call i32 @func_dynamic_dynamic_f32() 844 ret i32 %result 845} 846 847define i32 @call_psz_psz_f32_from_psz_psz() #1 { 848; CHECK-LABEL: @call_psz_psz_f32_from_psz_psz( 849; CHECK-NEXT: [[RESULT:%.*]] = call i32 @func_psz_psz_f32() 850; CHECK-NEXT: ret i32 [[RESULT]] 851; 852 %result = call i32 @func_psz_psz_f32() 853 ret i32 %result 854} 855 856define i32 @call_dynamic_dynamic_psz_psz_f32_from_psz_psz() #1 { 857; CHECK-LABEL: @call_dynamic_dynamic_psz_psz_f32_from_psz_psz( 858; CHECK-NEXT: ret i32 12 859; 860 %result = call i32 @func_dynamic_dynamic_psz_psz_f32() 861 ret i32 %result 862} 863 864attributes #0 = { "denormal-fp-math"="ieee,ieee" } 865attributes #1 = { "denormal-fp-math"="preserve-sign,preserve-sign" } 866attributes #2 = { "denormal-fp-math"="preserve-sign,ieee" } 867attributes #3 = { "denormal-fp-math"="ieee,preserve-sign" } 868attributes #4 = { "denormal-fp-math"="dynamic,dynamic" } 869attributes #5 = { "denormal-fp-math"="dynamic,ieee" } 870attributes #6 = { "denormal-fp-math"="ieee,dynamic" } 871attributes #7 = { "denormal-fp-math"="preserve-sign,dynamic" } 872attributes #8 = { "denormal-fp-math"="dynamic,preserve-sign" } 873attributes #9 = { "denormal-fp-math-f32"="dynamic,dynamic" } 874attributes #10 = { "denormal-fp-math-f32"="preserve-sign,preserve-sign" } 875attributes #11 = { "denormal-fp-math-f32"="ieee,ieee" "denormal-fp-math"="preserve-sign,preserve-sign" } 876attributes #12 = { "denormal-fp-math"="dynamic,dynamic" "denormal-fp-math-f32"="preserve-sign,preserve-sign" } 877