841 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -global-isel=0 -mtriple=amdgcn--amdpal -mcpu=gfx1200 < %s | FileCheck %s --check-prefix=DAGISEL3; RUN: llc -global-isel=1 -mtriple=amdgcn--amdpal -mcpu=gfx1200 < %s | FileCheck %s --check-prefix=GISEL4 5declare amdgpu_gfx_whole_wave i32 @good_callee(i1 %active, i32 %x, i32 %y, i32 inreg %c)6 7define amdgpu_gfx void @basic_test(i32 %x, i32 inreg %c, ptr addrspace(1) %ptr) {8; DAGISEL-LABEL: basic_test:9; DAGISEL: ; %bb.0:10; DAGISEL-NEXT: s_wait_loadcnt_dscnt 0x011; DAGISEL-NEXT: s_wait_expcnt 0x012; DAGISEL-NEXT: s_wait_samplecnt 0x013; DAGISEL-NEXT: s_wait_bvhcnt 0x014; DAGISEL-NEXT: s_wait_kmcnt 0x015; DAGISEL-NEXT: s_mov_b32 s0, s3316; DAGISEL-NEXT: s_mov_b32 s33, s3217; DAGISEL-NEXT: s_or_saveexec_b32 s1, -118; DAGISEL-NEXT: scratch_store_b32 off, v42, s33 offset:8 ; 4-byte Folded Spill19; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)20; DAGISEL-NEXT: s_mov_b32 exec_lo, s121; DAGISEL-NEXT: v_writelane_b32 v42, s0, 222; DAGISEL-NEXT: s_clause 0x1 ; 8-byte Folded Spill23; DAGISEL-NEXT: scratch_store_b32 off, v40, s33 offset:424; DAGISEL-NEXT: scratch_store_b32 off, v41, s3325; DAGISEL-NEXT: v_dual_mov_b32 v41, v2 :: v_dual_mov_b32 v40, v126; DAGISEL-NEXT: v_add_nc_u32_e32 v1, 13, v027; DAGISEL-NEXT: v_writelane_b32 v42, s30, 028; DAGISEL-NEXT: s_mov_b32 s1, good_callee@abs32@hi29; DAGISEL-NEXT: s_mov_b32 s0, good_callee@abs32@lo30; DAGISEL-NEXT: s_add_co_i32 s32, s32, 1631; DAGISEL-NEXT: v_writelane_b32 v42, s31, 132; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)33; DAGISEL-NEXT: s_swappc_b64 s[30:31], s[0:1]34; DAGISEL-NEXT: global_store_b32 v[40:41], v0, off35; DAGISEL-NEXT: s_clause 0x1 ; 8-byte Folded Reload36; DAGISEL-NEXT: scratch_load_b32 v41, off, s3337; DAGISEL-NEXT: scratch_load_b32 v40, off, s33 offset:438; DAGISEL-NEXT: v_readlane_b32 s31, v42, 139; DAGISEL-NEXT: v_readlane_b32 s30, v42, 040; DAGISEL-NEXT: s_mov_b32 s32, s3341; DAGISEL-NEXT: v_readlane_b32 s0, v42, 242; DAGISEL-NEXT: s_or_saveexec_b32 s1, -143; DAGISEL-NEXT: scratch_load_b32 v42, off, s33 offset:8 ; 4-byte Folded Reload44; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)45; DAGISEL-NEXT: s_mov_b32 exec_lo, s146; DAGISEL-NEXT: s_mov_b32 s33, s047; DAGISEL-NEXT: s_wait_loadcnt 0x048; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)49; DAGISEL-NEXT: s_setpc_b64 s[30:31]50;51; GISEL-LABEL: basic_test:52; GISEL: ; %bb.0:53; GISEL-NEXT: s_wait_loadcnt_dscnt 0x054; GISEL-NEXT: s_wait_expcnt 0x055; GISEL-NEXT: s_wait_samplecnt 0x056; GISEL-NEXT: s_wait_bvhcnt 0x057; GISEL-NEXT: s_wait_kmcnt 0x058; GISEL-NEXT: s_mov_b32 s0, s3359; GISEL-NEXT: s_mov_b32 s33, s3260; GISEL-NEXT: s_or_saveexec_b32 s1, -161; GISEL-NEXT: scratch_store_b32 off, v42, s33 offset:8 ; 4-byte Folded Spill62; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)63; GISEL-NEXT: s_mov_b32 exec_lo, s164; GISEL-NEXT: v_writelane_b32 v42, s0, 265; GISEL-NEXT: s_clause 0x1 ; 8-byte Folded Spill66; GISEL-NEXT: scratch_store_b32 off, v40, s33 offset:467; GISEL-NEXT: scratch_store_b32 off, v41, s3368; GISEL-NEXT: v_dual_mov_b32 v40, v1 :: v_dual_mov_b32 v41, v269; GISEL-NEXT: v_add_nc_u32_e32 v1, 13, v070; GISEL-NEXT: v_writelane_b32 v42, s30, 071; GISEL-NEXT: s_mov_b32 s0, good_callee@abs32@lo72; GISEL-NEXT: s_mov_b32 s1, good_callee@abs32@hi73; GISEL-NEXT: s_add_co_i32 s32, s32, 1674; GISEL-NEXT: v_writelane_b32 v42, s31, 175; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)76; GISEL-NEXT: s_swappc_b64 s[30:31], s[0:1]77; GISEL-NEXT: global_store_b32 v[40:41], v0, off78; GISEL-NEXT: s_clause 0x1 ; 8-byte Folded Reload79; GISEL-NEXT: scratch_load_b32 v41, off, s3380; GISEL-NEXT: scratch_load_b32 v40, off, s33 offset:481; GISEL-NEXT: v_readlane_b32 s31, v42, 182; GISEL-NEXT: v_readlane_b32 s30, v42, 083; GISEL-NEXT: s_mov_b32 s32, s3384; GISEL-NEXT: v_readlane_b32 s0, v42, 285; GISEL-NEXT: s_or_saveexec_b32 s1, -186; GISEL-NEXT: scratch_load_b32 v42, off, s33 offset:8 ; 4-byte Folded Reload87; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)88; GISEL-NEXT: s_mov_b32 exec_lo, s189; GISEL-NEXT: s_mov_b32 s33, s090; GISEL-NEXT: s_wait_loadcnt 0x091; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)92; GISEL-NEXT: s_setpc_b64 s[30:31]93 %y = add i32 %x, 1394 %ret = call i32(ptr, ...) @llvm.amdgcn.call.whole.wave(ptr @good_callee, i32 %x, i32 %y, i32 inreg %c)95 store i32 %ret, ptr addrspace(1) %ptr96 ret void97}98 99define amdgpu_gfx i32 @tail_call_from_gfx(i32 %x, i32 inreg %c) {100; DAGISEL-LABEL: tail_call_from_gfx:101; DAGISEL: ; %bb.0:102; DAGISEL-NEXT: s_wait_loadcnt_dscnt 0x0103; DAGISEL-NEXT: s_wait_expcnt 0x0104; DAGISEL-NEXT: s_wait_samplecnt 0x0105; DAGISEL-NEXT: s_wait_bvhcnt 0x0106; DAGISEL-NEXT: s_wait_kmcnt 0x0107; DAGISEL-NEXT: v_add_nc_u32_e32 v1, 13, v0108; DAGISEL-NEXT: s_mov_b32 s1, good_callee@abs32@hi109; DAGISEL-NEXT: s_mov_b32 s0, good_callee@abs32@lo110; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)111; DAGISEL-NEXT: s_setpc_b64 s[0:1]112;113; GISEL-LABEL: tail_call_from_gfx:114; GISEL: ; %bb.0:115; GISEL-NEXT: s_wait_loadcnt_dscnt 0x0116; GISEL-NEXT: s_wait_expcnt 0x0117; GISEL-NEXT: s_wait_samplecnt 0x0118; GISEL-NEXT: s_wait_bvhcnt 0x0119; GISEL-NEXT: s_wait_kmcnt 0x0120; GISEL-NEXT: v_add_nc_u32_e32 v1, 13, v0121; GISEL-NEXT: s_mov_b32 s36, good_callee@abs32@lo122; GISEL-NEXT: s_mov_b32 s37, good_callee@abs32@hi123; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)124; GISEL-NEXT: s_setpc_b64 s[36:37]125 %y = add i32 %x, 13126 %ret = tail call i32(ptr, ...) @llvm.amdgcn.call.whole.wave(ptr @good_callee, i32 %x, i32 %y, i32 inreg %c)127 ret i32 %ret128}129 130define amdgpu_gfx_whole_wave i32 @tail_call_from_whole_wave(i1 %active, i32 %x, i32 inreg %c) {131; DAGISEL-LABEL: tail_call_from_whole_wave:132; DAGISEL: ; %bb.0:133; DAGISEL-NEXT: s_wait_loadcnt_dscnt 0x0134; DAGISEL-NEXT: s_wait_expcnt 0x0135; DAGISEL-NEXT: s_wait_samplecnt 0x0136; DAGISEL-NEXT: s_wait_bvhcnt 0x0137; DAGISEL-NEXT: s_wait_kmcnt 0x0138; DAGISEL-NEXT: s_xor_saveexec_b32 s0, -1139; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill140; DAGISEL-NEXT: scratch_store_b32 off, v0, s32141; DAGISEL-NEXT: scratch_store_b32 off, v1, s32 offset:4142; DAGISEL-NEXT: scratch_store_b32 off, v2, s32 offset:8143; DAGISEL-NEXT: scratch_store_b32 off, v3, s32 offset:12144; DAGISEL-NEXT: scratch_store_b32 off, v4, s32 offset:16145; DAGISEL-NEXT: scratch_store_b32 off, v5, s32 offset:20146; DAGISEL-NEXT: scratch_store_b32 off, v6, s32 offset:24147; DAGISEL-NEXT: scratch_store_b32 off, v7, s32 offset:28148; DAGISEL-NEXT: scratch_store_b32 off, v8, s32 offset:32149; DAGISEL-NEXT: scratch_store_b32 off, v9, s32 offset:36150; DAGISEL-NEXT: scratch_store_b32 off, v10, s32 offset:40151; DAGISEL-NEXT: scratch_store_b32 off, v11, s32 offset:44152; DAGISEL-NEXT: scratch_store_b32 off, v12, s32 offset:48153; DAGISEL-NEXT: scratch_store_b32 off, v13, s32 offset:52154; DAGISEL-NEXT: scratch_store_b32 off, v14, s32 offset:56155; DAGISEL-NEXT: scratch_store_b32 off, v15, s32 offset:60156; DAGISEL-NEXT: scratch_store_b32 off, v16, s32 offset:64157; DAGISEL-NEXT: scratch_store_b32 off, v17, s32 offset:68158; DAGISEL-NEXT: scratch_store_b32 off, v18, s32 offset:72159; DAGISEL-NEXT: scratch_store_b32 off, v19, s32 offset:76160; DAGISEL-NEXT: scratch_store_b32 off, v20, s32 offset:80161; DAGISEL-NEXT: scratch_store_b32 off, v21, s32 offset:84162; DAGISEL-NEXT: scratch_store_b32 off, v22, s32 offset:88163; DAGISEL-NEXT: scratch_store_b32 off, v23, s32 offset:92164; DAGISEL-NEXT: scratch_store_b32 off, v24, s32 offset:96165; DAGISEL-NEXT: scratch_store_b32 off, v25, s32 offset:100166; DAGISEL-NEXT: scratch_store_b32 off, v26, s32 offset:104167; DAGISEL-NEXT: scratch_store_b32 off, v27, s32 offset:108168; DAGISEL-NEXT: scratch_store_b32 off, v28, s32 offset:112169; DAGISEL-NEXT: scratch_store_b32 off, v29, s32 offset:116170; DAGISEL-NEXT: scratch_store_b32 off, v30, s32 offset:120171; DAGISEL-NEXT: scratch_store_b32 off, v31, s32 offset:124172; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill173; DAGISEL-NEXT: scratch_store_b32 off, v32, s32 offset:128174; DAGISEL-NEXT: scratch_store_b32 off, v33, s32 offset:132175; DAGISEL-NEXT: scratch_store_b32 off, v34, s32 offset:136176; DAGISEL-NEXT: scratch_store_b32 off, v35, s32 offset:140177; DAGISEL-NEXT: scratch_store_b32 off, v36, s32 offset:144178; DAGISEL-NEXT: scratch_store_b32 off, v37, s32 offset:148179; DAGISEL-NEXT: scratch_store_b32 off, v38, s32 offset:152180; DAGISEL-NEXT: scratch_store_b32 off, v39, s32 offset:156181; DAGISEL-NEXT: scratch_store_b32 off, v48, s32 offset:160182; DAGISEL-NEXT: scratch_store_b32 off, v49, s32 offset:164183; DAGISEL-NEXT: scratch_store_b32 off, v50, s32 offset:168184; DAGISEL-NEXT: scratch_store_b32 off, v51, s32 offset:172185; DAGISEL-NEXT: scratch_store_b32 off, v52, s32 offset:176186; DAGISEL-NEXT: scratch_store_b32 off, v53, s32 offset:180187; DAGISEL-NEXT: scratch_store_b32 off, v54, s32 offset:184188; DAGISEL-NEXT: scratch_store_b32 off, v55, s32 offset:188189; DAGISEL-NEXT: scratch_store_b32 off, v64, s32 offset:192190; DAGISEL-NEXT: scratch_store_b32 off, v65, s32 offset:196191; DAGISEL-NEXT: scratch_store_b32 off, v66, s32 offset:200192; DAGISEL-NEXT: scratch_store_b32 off, v67, s32 offset:204193; DAGISEL-NEXT: scratch_store_b32 off, v68, s32 offset:208194; DAGISEL-NEXT: scratch_store_b32 off, v69, s32 offset:212195; DAGISEL-NEXT: scratch_store_b32 off, v70, s32 offset:216196; DAGISEL-NEXT: scratch_store_b32 off, v71, s32 offset:220197; DAGISEL-NEXT: scratch_store_b32 off, v80, s32 offset:224198; DAGISEL-NEXT: scratch_store_b32 off, v81, s32 offset:228199; DAGISEL-NEXT: scratch_store_b32 off, v82, s32 offset:232200; DAGISEL-NEXT: scratch_store_b32 off, v83, s32 offset:236201; DAGISEL-NEXT: scratch_store_b32 off, v84, s32 offset:240202; DAGISEL-NEXT: scratch_store_b32 off, v85, s32 offset:244203; DAGISEL-NEXT: scratch_store_b32 off, v86, s32 offset:248204; DAGISEL-NEXT: scratch_store_b32 off, v87, s32 offset:252205; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill206; DAGISEL-NEXT: scratch_store_b32 off, v96, s32 offset:256207; DAGISEL-NEXT: scratch_store_b32 off, v97, s32 offset:260208; DAGISEL-NEXT: scratch_store_b32 off, v98, s32 offset:264209; DAGISEL-NEXT: scratch_store_b32 off, v99, s32 offset:268210; DAGISEL-NEXT: scratch_store_b32 off, v100, s32 offset:272211; DAGISEL-NEXT: scratch_store_b32 off, v101, s32 offset:276212; DAGISEL-NEXT: scratch_store_b32 off, v102, s32 offset:280213; DAGISEL-NEXT: scratch_store_b32 off, v103, s32 offset:284214; DAGISEL-NEXT: scratch_store_b32 off, v112, s32 offset:288215; DAGISEL-NEXT: scratch_store_b32 off, v113, s32 offset:292216; DAGISEL-NEXT: scratch_store_b32 off, v114, s32 offset:296217; DAGISEL-NEXT: scratch_store_b32 off, v115, s32 offset:300218; DAGISEL-NEXT: scratch_store_b32 off, v116, s32 offset:304219; DAGISEL-NEXT: scratch_store_b32 off, v117, s32 offset:308220; DAGISEL-NEXT: scratch_store_b32 off, v118, s32 offset:312221; DAGISEL-NEXT: scratch_store_b32 off, v119, s32 offset:316222; DAGISEL-NEXT: scratch_store_b32 off, v128, s32 offset:320223; DAGISEL-NEXT: scratch_store_b32 off, v129, s32 offset:324224; DAGISEL-NEXT: scratch_store_b32 off, v130, s32 offset:328225; DAGISEL-NEXT: scratch_store_b32 off, v131, s32 offset:332226; DAGISEL-NEXT: scratch_store_b32 off, v132, s32 offset:336227; DAGISEL-NEXT: scratch_store_b32 off, v133, s32 offset:340228; DAGISEL-NEXT: scratch_store_b32 off, v134, s32 offset:344229; DAGISEL-NEXT: scratch_store_b32 off, v135, s32 offset:348230; DAGISEL-NEXT: scratch_store_b32 off, v144, s32 offset:352231; DAGISEL-NEXT: scratch_store_b32 off, v145, s32 offset:356232; DAGISEL-NEXT: scratch_store_b32 off, v146, s32 offset:360233; DAGISEL-NEXT: scratch_store_b32 off, v147, s32 offset:364234; DAGISEL-NEXT: scratch_store_b32 off, v148, s32 offset:368235; DAGISEL-NEXT: scratch_store_b32 off, v149, s32 offset:372236; DAGISEL-NEXT: scratch_store_b32 off, v150, s32 offset:376237; DAGISEL-NEXT: scratch_store_b32 off, v151, s32 offset:380238; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill239; DAGISEL-NEXT: scratch_store_b32 off, v160, s32 offset:384240; DAGISEL-NEXT: scratch_store_b32 off, v161, s32 offset:388241; DAGISEL-NEXT: scratch_store_b32 off, v162, s32 offset:392242; DAGISEL-NEXT: scratch_store_b32 off, v163, s32 offset:396243; DAGISEL-NEXT: scratch_store_b32 off, v164, s32 offset:400244; DAGISEL-NEXT: scratch_store_b32 off, v165, s32 offset:404245; DAGISEL-NEXT: scratch_store_b32 off, v166, s32 offset:408246; DAGISEL-NEXT: scratch_store_b32 off, v167, s32 offset:412247; DAGISEL-NEXT: scratch_store_b32 off, v176, s32 offset:416248; DAGISEL-NEXT: scratch_store_b32 off, v177, s32 offset:420249; DAGISEL-NEXT: scratch_store_b32 off, v178, s32 offset:424250; DAGISEL-NEXT: scratch_store_b32 off, v179, s32 offset:428251; DAGISEL-NEXT: scratch_store_b32 off, v180, s32 offset:432252; DAGISEL-NEXT: scratch_store_b32 off, v181, s32 offset:436253; DAGISEL-NEXT: scratch_store_b32 off, v182, s32 offset:440254; DAGISEL-NEXT: scratch_store_b32 off, v183, s32 offset:444255; DAGISEL-NEXT: scratch_store_b32 off, v192, s32 offset:448256; DAGISEL-NEXT: scratch_store_b32 off, v193, s32 offset:452257; DAGISEL-NEXT: scratch_store_b32 off, v194, s32 offset:456258; DAGISEL-NEXT: scratch_store_b32 off, v195, s32 offset:460259; DAGISEL-NEXT: scratch_store_b32 off, v196, s32 offset:464260; DAGISEL-NEXT: scratch_store_b32 off, v197, s32 offset:468261; DAGISEL-NEXT: scratch_store_b32 off, v198, s32 offset:472262; DAGISEL-NEXT: scratch_store_b32 off, v199, s32 offset:476263; DAGISEL-NEXT: scratch_store_b32 off, v208, s32 offset:480264; DAGISEL-NEXT: scratch_store_b32 off, v209, s32 offset:484265; DAGISEL-NEXT: scratch_store_b32 off, v210, s32 offset:488266; DAGISEL-NEXT: scratch_store_b32 off, v211, s32 offset:492267; DAGISEL-NEXT: scratch_store_b32 off, v212, s32 offset:496268; DAGISEL-NEXT: scratch_store_b32 off, v213, s32 offset:500269; DAGISEL-NEXT: scratch_store_b32 off, v214, s32 offset:504270; DAGISEL-NEXT: scratch_store_b32 off, v215, s32 offset:508271; DAGISEL-NEXT: s_clause 0xf ; 64-byte Folded Spill272; DAGISEL-NEXT: scratch_store_b32 off, v224, s32 offset:512273; DAGISEL-NEXT: scratch_store_b32 off, v225, s32 offset:516274; DAGISEL-NEXT: scratch_store_b32 off, v226, s32 offset:520275; DAGISEL-NEXT: scratch_store_b32 off, v227, s32 offset:524276; DAGISEL-NEXT: scratch_store_b32 off, v228, s32 offset:528277; DAGISEL-NEXT: scratch_store_b32 off, v229, s32 offset:532278; DAGISEL-NEXT: scratch_store_b32 off, v230, s32 offset:536279; DAGISEL-NEXT: scratch_store_b32 off, v231, s32 offset:540280; DAGISEL-NEXT: scratch_store_b32 off, v240, s32 offset:544281; DAGISEL-NEXT: scratch_store_b32 off, v241, s32 offset:548282; DAGISEL-NEXT: scratch_store_b32 off, v242, s32 offset:552283; DAGISEL-NEXT: scratch_store_b32 off, v243, s32 offset:556284; DAGISEL-NEXT: scratch_store_b32 off, v244, s32 offset:560285; DAGISEL-NEXT: scratch_store_b32 off, v245, s32 offset:564286; DAGISEL-NEXT: scratch_store_b32 off, v246, s32 offset:568287; DAGISEL-NEXT: scratch_store_b32 off, v247, s32 offset:572288; DAGISEL-NEXT: s_mov_b32 exec_lo, -1289; DAGISEL-NEXT: v_add_nc_u32_e32 v1, 13, v0290; DAGISEL-NEXT: s_mov_b32 s37, good_callee@abs32@hi291; DAGISEL-NEXT: s_mov_b32 s36, good_callee@abs32@lo292; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)293; DAGISEL-NEXT: s_xor_b32 exec_lo, s0, -1294; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload295; DAGISEL-NEXT: scratch_load_b32 v0, off, s32296; DAGISEL-NEXT: scratch_load_b32 v1, off, s32 offset:4297; DAGISEL-NEXT: scratch_load_b32 v2, off, s32 offset:8298; DAGISEL-NEXT: scratch_load_b32 v3, off, s32 offset:12299; DAGISEL-NEXT: scratch_load_b32 v4, off, s32 offset:16300; DAGISEL-NEXT: scratch_load_b32 v5, off, s32 offset:20301; DAGISEL-NEXT: scratch_load_b32 v6, off, s32 offset:24302; DAGISEL-NEXT: scratch_load_b32 v7, off, s32 offset:28303; DAGISEL-NEXT: scratch_load_b32 v8, off, s32 offset:32304; DAGISEL-NEXT: scratch_load_b32 v9, off, s32 offset:36305; DAGISEL-NEXT: scratch_load_b32 v10, off, s32 offset:40306; DAGISEL-NEXT: scratch_load_b32 v11, off, s32 offset:44307; DAGISEL-NEXT: scratch_load_b32 v12, off, s32 offset:48308; DAGISEL-NEXT: scratch_load_b32 v13, off, s32 offset:52309; DAGISEL-NEXT: scratch_load_b32 v14, off, s32 offset:56310; DAGISEL-NEXT: scratch_load_b32 v15, off, s32 offset:60311; DAGISEL-NEXT: scratch_load_b32 v16, off, s32 offset:64312; DAGISEL-NEXT: scratch_load_b32 v17, off, s32 offset:68313; DAGISEL-NEXT: scratch_load_b32 v18, off, s32 offset:72314; DAGISEL-NEXT: scratch_load_b32 v19, off, s32 offset:76315; DAGISEL-NEXT: scratch_load_b32 v20, off, s32 offset:80316; DAGISEL-NEXT: scratch_load_b32 v21, off, s32 offset:84317; DAGISEL-NEXT: scratch_load_b32 v22, off, s32 offset:88318; DAGISEL-NEXT: scratch_load_b32 v23, off, s32 offset:92319; DAGISEL-NEXT: scratch_load_b32 v24, off, s32 offset:96320; DAGISEL-NEXT: scratch_load_b32 v25, off, s32 offset:100321; DAGISEL-NEXT: scratch_load_b32 v26, off, s32 offset:104322; DAGISEL-NEXT: scratch_load_b32 v27, off, s32 offset:108323; DAGISEL-NEXT: scratch_load_b32 v28, off, s32 offset:112324; DAGISEL-NEXT: scratch_load_b32 v29, off, s32 offset:116325; DAGISEL-NEXT: scratch_load_b32 v30, off, s32 offset:120326; DAGISEL-NEXT: scratch_load_b32 v31, off, s32 offset:124327; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload328; DAGISEL-NEXT: scratch_load_b32 v32, off, s32 offset:128329; DAGISEL-NEXT: scratch_load_b32 v33, off, s32 offset:132330; DAGISEL-NEXT: scratch_load_b32 v34, off, s32 offset:136331; DAGISEL-NEXT: scratch_load_b32 v35, off, s32 offset:140332; DAGISEL-NEXT: scratch_load_b32 v36, off, s32 offset:144333; DAGISEL-NEXT: scratch_load_b32 v37, off, s32 offset:148334; DAGISEL-NEXT: scratch_load_b32 v38, off, s32 offset:152335; DAGISEL-NEXT: scratch_load_b32 v39, off, s32 offset:156336; DAGISEL-NEXT: scratch_load_b32 v48, off, s32 offset:160337; DAGISEL-NEXT: scratch_load_b32 v49, off, s32 offset:164338; DAGISEL-NEXT: scratch_load_b32 v50, off, s32 offset:168339; DAGISEL-NEXT: scratch_load_b32 v51, off, s32 offset:172340; DAGISEL-NEXT: scratch_load_b32 v52, off, s32 offset:176341; DAGISEL-NEXT: scratch_load_b32 v53, off, s32 offset:180342; DAGISEL-NEXT: scratch_load_b32 v54, off, s32 offset:184343; DAGISEL-NEXT: scratch_load_b32 v55, off, s32 offset:188344; DAGISEL-NEXT: scratch_load_b32 v64, off, s32 offset:192345; DAGISEL-NEXT: scratch_load_b32 v65, off, s32 offset:196346; DAGISEL-NEXT: scratch_load_b32 v66, off, s32 offset:200347; DAGISEL-NEXT: scratch_load_b32 v67, off, s32 offset:204348; DAGISEL-NEXT: scratch_load_b32 v68, off, s32 offset:208349; DAGISEL-NEXT: scratch_load_b32 v69, off, s32 offset:212350; DAGISEL-NEXT: scratch_load_b32 v70, off, s32 offset:216351; DAGISEL-NEXT: scratch_load_b32 v71, off, s32 offset:220352; DAGISEL-NEXT: scratch_load_b32 v80, off, s32 offset:224353; DAGISEL-NEXT: scratch_load_b32 v81, off, s32 offset:228354; DAGISEL-NEXT: scratch_load_b32 v82, off, s32 offset:232355; DAGISEL-NEXT: scratch_load_b32 v83, off, s32 offset:236356; DAGISEL-NEXT: scratch_load_b32 v84, off, s32 offset:240357; DAGISEL-NEXT: scratch_load_b32 v85, off, s32 offset:244358; DAGISEL-NEXT: scratch_load_b32 v86, off, s32 offset:248359; DAGISEL-NEXT: scratch_load_b32 v87, off, s32 offset:252360; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload361; DAGISEL-NEXT: scratch_load_b32 v96, off, s32 offset:256362; DAGISEL-NEXT: scratch_load_b32 v97, off, s32 offset:260363; DAGISEL-NEXT: scratch_load_b32 v98, off, s32 offset:264364; DAGISEL-NEXT: scratch_load_b32 v99, off, s32 offset:268365; DAGISEL-NEXT: scratch_load_b32 v100, off, s32 offset:272366; DAGISEL-NEXT: scratch_load_b32 v101, off, s32 offset:276367; DAGISEL-NEXT: scratch_load_b32 v102, off, s32 offset:280368; DAGISEL-NEXT: scratch_load_b32 v103, off, s32 offset:284369; DAGISEL-NEXT: scratch_load_b32 v112, off, s32 offset:288370; DAGISEL-NEXT: scratch_load_b32 v113, off, s32 offset:292371; DAGISEL-NEXT: scratch_load_b32 v114, off, s32 offset:296372; DAGISEL-NEXT: scratch_load_b32 v115, off, s32 offset:300373; DAGISEL-NEXT: scratch_load_b32 v116, off, s32 offset:304374; DAGISEL-NEXT: scratch_load_b32 v117, off, s32 offset:308375; DAGISEL-NEXT: scratch_load_b32 v118, off, s32 offset:312376; DAGISEL-NEXT: scratch_load_b32 v119, off, s32 offset:316377; DAGISEL-NEXT: scratch_load_b32 v128, off, s32 offset:320378; DAGISEL-NEXT: scratch_load_b32 v129, off, s32 offset:324379; DAGISEL-NEXT: scratch_load_b32 v130, off, s32 offset:328380; DAGISEL-NEXT: scratch_load_b32 v131, off, s32 offset:332381; DAGISEL-NEXT: scratch_load_b32 v132, off, s32 offset:336382; DAGISEL-NEXT: scratch_load_b32 v133, off, s32 offset:340383; DAGISEL-NEXT: scratch_load_b32 v134, off, s32 offset:344384; DAGISEL-NEXT: scratch_load_b32 v135, off, s32 offset:348385; DAGISEL-NEXT: scratch_load_b32 v144, off, s32 offset:352386; DAGISEL-NEXT: scratch_load_b32 v145, off, s32 offset:356387; DAGISEL-NEXT: scratch_load_b32 v146, off, s32 offset:360388; DAGISEL-NEXT: scratch_load_b32 v147, off, s32 offset:364389; DAGISEL-NEXT: scratch_load_b32 v148, off, s32 offset:368390; DAGISEL-NEXT: scratch_load_b32 v149, off, s32 offset:372391; DAGISEL-NEXT: scratch_load_b32 v150, off, s32 offset:376392; DAGISEL-NEXT: scratch_load_b32 v151, off, s32 offset:380393; DAGISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload394; DAGISEL-NEXT: scratch_load_b32 v160, off, s32 offset:384395; DAGISEL-NEXT: scratch_load_b32 v161, off, s32 offset:388396; DAGISEL-NEXT: scratch_load_b32 v162, off, s32 offset:392397; DAGISEL-NEXT: scratch_load_b32 v163, off, s32 offset:396398; DAGISEL-NEXT: scratch_load_b32 v164, off, s32 offset:400399; DAGISEL-NEXT: scratch_load_b32 v165, off, s32 offset:404400; DAGISEL-NEXT: scratch_load_b32 v166, off, s32 offset:408401; DAGISEL-NEXT: scratch_load_b32 v167, off, s32 offset:412402; DAGISEL-NEXT: scratch_load_b32 v176, off, s32 offset:416403; DAGISEL-NEXT: scratch_load_b32 v177, off, s32 offset:420404; DAGISEL-NEXT: scratch_load_b32 v178, off, s32 offset:424405; DAGISEL-NEXT: scratch_load_b32 v179, off, s32 offset:428406; DAGISEL-NEXT: scratch_load_b32 v180, off, s32 offset:432407; DAGISEL-NEXT: scratch_load_b32 v181, off, s32 offset:436408; DAGISEL-NEXT: scratch_load_b32 v182, off, s32 offset:440409; DAGISEL-NEXT: scratch_load_b32 v183, off, s32 offset:444410; DAGISEL-NEXT: scratch_load_b32 v192, off, s32 offset:448411; DAGISEL-NEXT: scratch_load_b32 v193, off, s32 offset:452412; DAGISEL-NEXT: scratch_load_b32 v194, off, s32 offset:456413; DAGISEL-NEXT: scratch_load_b32 v195, off, s32 offset:460414; DAGISEL-NEXT: scratch_load_b32 v196, off, s32 offset:464415; DAGISEL-NEXT: scratch_load_b32 v197, off, s32 offset:468416; DAGISEL-NEXT: scratch_load_b32 v198, off, s32 offset:472417; DAGISEL-NEXT: scratch_load_b32 v199, off, s32 offset:476418; DAGISEL-NEXT: scratch_load_b32 v208, off, s32 offset:480419; DAGISEL-NEXT: scratch_load_b32 v209, off, s32 offset:484420; DAGISEL-NEXT: scratch_load_b32 v210, off, s32 offset:488421; DAGISEL-NEXT: scratch_load_b32 v211, off, s32 offset:492422; DAGISEL-NEXT: scratch_load_b32 v212, off, s32 offset:496423; DAGISEL-NEXT: scratch_load_b32 v213, off, s32 offset:500424; DAGISEL-NEXT: scratch_load_b32 v214, off, s32 offset:504425; DAGISEL-NEXT: scratch_load_b32 v215, off, s32 offset:508426; DAGISEL-NEXT: s_clause 0xf ; 64-byte Folded Reload427; DAGISEL-NEXT: scratch_load_b32 v224, off, s32 offset:512428; DAGISEL-NEXT: scratch_load_b32 v225, off, s32 offset:516429; DAGISEL-NEXT: scratch_load_b32 v226, off, s32 offset:520430; DAGISEL-NEXT: scratch_load_b32 v227, off, s32 offset:524431; DAGISEL-NEXT: scratch_load_b32 v228, off, s32 offset:528432; DAGISEL-NEXT: scratch_load_b32 v229, off, s32 offset:532433; DAGISEL-NEXT: scratch_load_b32 v230, off, s32 offset:536434; DAGISEL-NEXT: scratch_load_b32 v231, off, s32 offset:540435; DAGISEL-NEXT: scratch_load_b32 v240, off, s32 offset:544436; DAGISEL-NEXT: scratch_load_b32 v241, off, s32 offset:548437; DAGISEL-NEXT: scratch_load_b32 v242, off, s32 offset:552438; DAGISEL-NEXT: scratch_load_b32 v243, off, s32 offset:556439; DAGISEL-NEXT: scratch_load_b32 v244, off, s32 offset:560440; DAGISEL-NEXT: scratch_load_b32 v245, off, s32 offset:564441; DAGISEL-NEXT: scratch_load_b32 v246, off, s32 offset:568442; DAGISEL-NEXT: scratch_load_b32 v247, off, s32 offset:572443; DAGISEL-NEXT: s_mov_b32 exec_lo, s0444; DAGISEL-NEXT: s_setpc_b64 s[36:37]445;446; GISEL-LABEL: tail_call_from_whole_wave:447; GISEL: ; %bb.0:448; GISEL-NEXT: s_wait_loadcnt_dscnt 0x0449; GISEL-NEXT: s_wait_expcnt 0x0450; GISEL-NEXT: s_wait_samplecnt 0x0451; GISEL-NEXT: s_wait_bvhcnt 0x0452; GISEL-NEXT: s_wait_kmcnt 0x0453; GISEL-NEXT: s_xor_saveexec_b32 s0, -1454; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill455; GISEL-NEXT: scratch_store_b32 off, v0, s32456; GISEL-NEXT: scratch_store_b32 off, v1, s32 offset:4457; GISEL-NEXT: scratch_store_b32 off, v2, s32 offset:8458; GISEL-NEXT: scratch_store_b32 off, v3, s32 offset:12459; GISEL-NEXT: scratch_store_b32 off, v4, s32 offset:16460; GISEL-NEXT: scratch_store_b32 off, v5, s32 offset:20461; GISEL-NEXT: scratch_store_b32 off, v6, s32 offset:24462; GISEL-NEXT: scratch_store_b32 off, v7, s32 offset:28463; GISEL-NEXT: scratch_store_b32 off, v8, s32 offset:32464; GISEL-NEXT: scratch_store_b32 off, v9, s32 offset:36465; GISEL-NEXT: scratch_store_b32 off, v10, s32 offset:40466; GISEL-NEXT: scratch_store_b32 off, v11, s32 offset:44467; GISEL-NEXT: scratch_store_b32 off, v12, s32 offset:48468; GISEL-NEXT: scratch_store_b32 off, v13, s32 offset:52469; GISEL-NEXT: scratch_store_b32 off, v14, s32 offset:56470; GISEL-NEXT: scratch_store_b32 off, v15, s32 offset:60471; GISEL-NEXT: scratch_store_b32 off, v16, s32 offset:64472; GISEL-NEXT: scratch_store_b32 off, v17, s32 offset:68473; GISEL-NEXT: scratch_store_b32 off, v18, s32 offset:72474; GISEL-NEXT: scratch_store_b32 off, v19, s32 offset:76475; GISEL-NEXT: scratch_store_b32 off, v20, s32 offset:80476; GISEL-NEXT: scratch_store_b32 off, v21, s32 offset:84477; GISEL-NEXT: scratch_store_b32 off, v22, s32 offset:88478; GISEL-NEXT: scratch_store_b32 off, v23, s32 offset:92479; GISEL-NEXT: scratch_store_b32 off, v24, s32 offset:96480; GISEL-NEXT: scratch_store_b32 off, v25, s32 offset:100481; GISEL-NEXT: scratch_store_b32 off, v26, s32 offset:104482; GISEL-NEXT: scratch_store_b32 off, v27, s32 offset:108483; GISEL-NEXT: scratch_store_b32 off, v28, s32 offset:112484; GISEL-NEXT: scratch_store_b32 off, v29, s32 offset:116485; GISEL-NEXT: scratch_store_b32 off, v30, s32 offset:120486; GISEL-NEXT: scratch_store_b32 off, v31, s32 offset:124487; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill488; GISEL-NEXT: scratch_store_b32 off, v32, s32 offset:128489; GISEL-NEXT: scratch_store_b32 off, v33, s32 offset:132490; GISEL-NEXT: scratch_store_b32 off, v34, s32 offset:136491; GISEL-NEXT: scratch_store_b32 off, v35, s32 offset:140492; GISEL-NEXT: scratch_store_b32 off, v36, s32 offset:144493; GISEL-NEXT: scratch_store_b32 off, v37, s32 offset:148494; GISEL-NEXT: scratch_store_b32 off, v38, s32 offset:152495; GISEL-NEXT: scratch_store_b32 off, v39, s32 offset:156496; GISEL-NEXT: scratch_store_b32 off, v48, s32 offset:160497; GISEL-NEXT: scratch_store_b32 off, v49, s32 offset:164498; GISEL-NEXT: scratch_store_b32 off, v50, s32 offset:168499; GISEL-NEXT: scratch_store_b32 off, v51, s32 offset:172500; GISEL-NEXT: scratch_store_b32 off, v52, s32 offset:176501; GISEL-NEXT: scratch_store_b32 off, v53, s32 offset:180502; GISEL-NEXT: scratch_store_b32 off, v54, s32 offset:184503; GISEL-NEXT: scratch_store_b32 off, v55, s32 offset:188504; GISEL-NEXT: scratch_store_b32 off, v64, s32 offset:192505; GISEL-NEXT: scratch_store_b32 off, v65, s32 offset:196506; GISEL-NEXT: scratch_store_b32 off, v66, s32 offset:200507; GISEL-NEXT: scratch_store_b32 off, v67, s32 offset:204508; GISEL-NEXT: scratch_store_b32 off, v68, s32 offset:208509; GISEL-NEXT: scratch_store_b32 off, v69, s32 offset:212510; GISEL-NEXT: scratch_store_b32 off, v70, s32 offset:216511; GISEL-NEXT: scratch_store_b32 off, v71, s32 offset:220512; GISEL-NEXT: scratch_store_b32 off, v80, s32 offset:224513; GISEL-NEXT: scratch_store_b32 off, v81, s32 offset:228514; GISEL-NEXT: scratch_store_b32 off, v82, s32 offset:232515; GISEL-NEXT: scratch_store_b32 off, v83, s32 offset:236516; GISEL-NEXT: scratch_store_b32 off, v84, s32 offset:240517; GISEL-NEXT: scratch_store_b32 off, v85, s32 offset:244518; GISEL-NEXT: scratch_store_b32 off, v86, s32 offset:248519; GISEL-NEXT: scratch_store_b32 off, v87, s32 offset:252520; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill521; GISEL-NEXT: scratch_store_b32 off, v96, s32 offset:256522; GISEL-NEXT: scratch_store_b32 off, v97, s32 offset:260523; GISEL-NEXT: scratch_store_b32 off, v98, s32 offset:264524; GISEL-NEXT: scratch_store_b32 off, v99, s32 offset:268525; GISEL-NEXT: scratch_store_b32 off, v100, s32 offset:272526; GISEL-NEXT: scratch_store_b32 off, v101, s32 offset:276527; GISEL-NEXT: scratch_store_b32 off, v102, s32 offset:280528; GISEL-NEXT: scratch_store_b32 off, v103, s32 offset:284529; GISEL-NEXT: scratch_store_b32 off, v112, s32 offset:288530; GISEL-NEXT: scratch_store_b32 off, v113, s32 offset:292531; GISEL-NEXT: scratch_store_b32 off, v114, s32 offset:296532; GISEL-NEXT: scratch_store_b32 off, v115, s32 offset:300533; GISEL-NEXT: scratch_store_b32 off, v116, s32 offset:304534; GISEL-NEXT: scratch_store_b32 off, v117, s32 offset:308535; GISEL-NEXT: scratch_store_b32 off, v118, s32 offset:312536; GISEL-NEXT: scratch_store_b32 off, v119, s32 offset:316537; GISEL-NEXT: scratch_store_b32 off, v128, s32 offset:320538; GISEL-NEXT: scratch_store_b32 off, v129, s32 offset:324539; GISEL-NEXT: scratch_store_b32 off, v130, s32 offset:328540; GISEL-NEXT: scratch_store_b32 off, v131, s32 offset:332541; GISEL-NEXT: scratch_store_b32 off, v132, s32 offset:336542; GISEL-NEXT: scratch_store_b32 off, v133, s32 offset:340543; GISEL-NEXT: scratch_store_b32 off, v134, s32 offset:344544; GISEL-NEXT: scratch_store_b32 off, v135, s32 offset:348545; GISEL-NEXT: scratch_store_b32 off, v144, s32 offset:352546; GISEL-NEXT: scratch_store_b32 off, v145, s32 offset:356547; GISEL-NEXT: scratch_store_b32 off, v146, s32 offset:360548; GISEL-NEXT: scratch_store_b32 off, v147, s32 offset:364549; GISEL-NEXT: scratch_store_b32 off, v148, s32 offset:368550; GISEL-NEXT: scratch_store_b32 off, v149, s32 offset:372551; GISEL-NEXT: scratch_store_b32 off, v150, s32 offset:376552; GISEL-NEXT: scratch_store_b32 off, v151, s32 offset:380553; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Spill554; GISEL-NEXT: scratch_store_b32 off, v160, s32 offset:384555; GISEL-NEXT: scratch_store_b32 off, v161, s32 offset:388556; GISEL-NEXT: scratch_store_b32 off, v162, s32 offset:392557; GISEL-NEXT: scratch_store_b32 off, v163, s32 offset:396558; GISEL-NEXT: scratch_store_b32 off, v164, s32 offset:400559; GISEL-NEXT: scratch_store_b32 off, v165, s32 offset:404560; GISEL-NEXT: scratch_store_b32 off, v166, s32 offset:408561; GISEL-NEXT: scratch_store_b32 off, v167, s32 offset:412562; GISEL-NEXT: scratch_store_b32 off, v176, s32 offset:416563; GISEL-NEXT: scratch_store_b32 off, v177, s32 offset:420564; GISEL-NEXT: scratch_store_b32 off, v178, s32 offset:424565; GISEL-NEXT: scratch_store_b32 off, v179, s32 offset:428566; GISEL-NEXT: scratch_store_b32 off, v180, s32 offset:432567; GISEL-NEXT: scratch_store_b32 off, v181, s32 offset:436568; GISEL-NEXT: scratch_store_b32 off, v182, s32 offset:440569; GISEL-NEXT: scratch_store_b32 off, v183, s32 offset:444570; GISEL-NEXT: scratch_store_b32 off, v192, s32 offset:448571; GISEL-NEXT: scratch_store_b32 off, v193, s32 offset:452572; GISEL-NEXT: scratch_store_b32 off, v194, s32 offset:456573; GISEL-NEXT: scratch_store_b32 off, v195, s32 offset:460574; GISEL-NEXT: scratch_store_b32 off, v196, s32 offset:464575; GISEL-NEXT: scratch_store_b32 off, v197, s32 offset:468576; GISEL-NEXT: scratch_store_b32 off, v198, s32 offset:472577; GISEL-NEXT: scratch_store_b32 off, v199, s32 offset:476578; GISEL-NEXT: scratch_store_b32 off, v208, s32 offset:480579; GISEL-NEXT: scratch_store_b32 off, v209, s32 offset:484580; GISEL-NEXT: scratch_store_b32 off, v210, s32 offset:488581; GISEL-NEXT: scratch_store_b32 off, v211, s32 offset:492582; GISEL-NEXT: scratch_store_b32 off, v212, s32 offset:496583; GISEL-NEXT: scratch_store_b32 off, v213, s32 offset:500584; GISEL-NEXT: scratch_store_b32 off, v214, s32 offset:504585; GISEL-NEXT: scratch_store_b32 off, v215, s32 offset:508586; GISEL-NEXT: s_clause 0xf ; 64-byte Folded Spill587; GISEL-NEXT: scratch_store_b32 off, v224, s32 offset:512588; GISEL-NEXT: scratch_store_b32 off, v225, s32 offset:516589; GISEL-NEXT: scratch_store_b32 off, v226, s32 offset:520590; GISEL-NEXT: scratch_store_b32 off, v227, s32 offset:524591; GISEL-NEXT: scratch_store_b32 off, v228, s32 offset:528592; GISEL-NEXT: scratch_store_b32 off, v229, s32 offset:532593; GISEL-NEXT: scratch_store_b32 off, v230, s32 offset:536594; GISEL-NEXT: scratch_store_b32 off, v231, s32 offset:540595; GISEL-NEXT: scratch_store_b32 off, v240, s32 offset:544596; GISEL-NEXT: scratch_store_b32 off, v241, s32 offset:548597; GISEL-NEXT: scratch_store_b32 off, v242, s32 offset:552598; GISEL-NEXT: scratch_store_b32 off, v243, s32 offset:556599; GISEL-NEXT: scratch_store_b32 off, v244, s32 offset:560600; GISEL-NEXT: scratch_store_b32 off, v245, s32 offset:564601; GISEL-NEXT: scratch_store_b32 off, v246, s32 offset:568602; GISEL-NEXT: scratch_store_b32 off, v247, s32 offset:572603; GISEL-NEXT: s_mov_b32 exec_lo, -1604; GISEL-NEXT: v_add_nc_u32_e32 v1, 13, v0605; GISEL-NEXT: s_mov_b32 s36, good_callee@abs32@lo606; GISEL-NEXT: s_mov_b32 s37, good_callee@abs32@hi607; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)608; GISEL-NEXT: s_xor_b32 exec_lo, s0, -1609; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload610; GISEL-NEXT: scratch_load_b32 v0, off, s32611; GISEL-NEXT: scratch_load_b32 v1, off, s32 offset:4612; GISEL-NEXT: scratch_load_b32 v2, off, s32 offset:8613; GISEL-NEXT: scratch_load_b32 v3, off, s32 offset:12614; GISEL-NEXT: scratch_load_b32 v4, off, s32 offset:16615; GISEL-NEXT: scratch_load_b32 v5, off, s32 offset:20616; GISEL-NEXT: scratch_load_b32 v6, off, s32 offset:24617; GISEL-NEXT: scratch_load_b32 v7, off, s32 offset:28618; GISEL-NEXT: scratch_load_b32 v8, off, s32 offset:32619; GISEL-NEXT: scratch_load_b32 v9, off, s32 offset:36620; GISEL-NEXT: scratch_load_b32 v10, off, s32 offset:40621; GISEL-NEXT: scratch_load_b32 v11, off, s32 offset:44622; GISEL-NEXT: scratch_load_b32 v12, off, s32 offset:48623; GISEL-NEXT: scratch_load_b32 v13, off, s32 offset:52624; GISEL-NEXT: scratch_load_b32 v14, off, s32 offset:56625; GISEL-NEXT: scratch_load_b32 v15, off, s32 offset:60626; GISEL-NEXT: scratch_load_b32 v16, off, s32 offset:64627; GISEL-NEXT: scratch_load_b32 v17, off, s32 offset:68628; GISEL-NEXT: scratch_load_b32 v18, off, s32 offset:72629; GISEL-NEXT: scratch_load_b32 v19, off, s32 offset:76630; GISEL-NEXT: scratch_load_b32 v20, off, s32 offset:80631; GISEL-NEXT: scratch_load_b32 v21, off, s32 offset:84632; GISEL-NEXT: scratch_load_b32 v22, off, s32 offset:88633; GISEL-NEXT: scratch_load_b32 v23, off, s32 offset:92634; GISEL-NEXT: scratch_load_b32 v24, off, s32 offset:96635; GISEL-NEXT: scratch_load_b32 v25, off, s32 offset:100636; GISEL-NEXT: scratch_load_b32 v26, off, s32 offset:104637; GISEL-NEXT: scratch_load_b32 v27, off, s32 offset:108638; GISEL-NEXT: scratch_load_b32 v28, off, s32 offset:112639; GISEL-NEXT: scratch_load_b32 v29, off, s32 offset:116640; GISEL-NEXT: scratch_load_b32 v30, off, s32 offset:120641; GISEL-NEXT: scratch_load_b32 v31, off, s32 offset:124642; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload643; GISEL-NEXT: scratch_load_b32 v32, off, s32 offset:128644; GISEL-NEXT: scratch_load_b32 v33, off, s32 offset:132645; GISEL-NEXT: scratch_load_b32 v34, off, s32 offset:136646; GISEL-NEXT: scratch_load_b32 v35, off, s32 offset:140647; GISEL-NEXT: scratch_load_b32 v36, off, s32 offset:144648; GISEL-NEXT: scratch_load_b32 v37, off, s32 offset:148649; GISEL-NEXT: scratch_load_b32 v38, off, s32 offset:152650; GISEL-NEXT: scratch_load_b32 v39, off, s32 offset:156651; GISEL-NEXT: scratch_load_b32 v48, off, s32 offset:160652; GISEL-NEXT: scratch_load_b32 v49, off, s32 offset:164653; GISEL-NEXT: scratch_load_b32 v50, off, s32 offset:168654; GISEL-NEXT: scratch_load_b32 v51, off, s32 offset:172655; GISEL-NEXT: scratch_load_b32 v52, off, s32 offset:176656; GISEL-NEXT: scratch_load_b32 v53, off, s32 offset:180657; GISEL-NEXT: scratch_load_b32 v54, off, s32 offset:184658; GISEL-NEXT: scratch_load_b32 v55, off, s32 offset:188659; GISEL-NEXT: scratch_load_b32 v64, off, s32 offset:192660; GISEL-NEXT: scratch_load_b32 v65, off, s32 offset:196661; GISEL-NEXT: scratch_load_b32 v66, off, s32 offset:200662; GISEL-NEXT: scratch_load_b32 v67, off, s32 offset:204663; GISEL-NEXT: scratch_load_b32 v68, off, s32 offset:208664; GISEL-NEXT: scratch_load_b32 v69, off, s32 offset:212665; GISEL-NEXT: scratch_load_b32 v70, off, s32 offset:216666; GISEL-NEXT: scratch_load_b32 v71, off, s32 offset:220667; GISEL-NEXT: scratch_load_b32 v80, off, s32 offset:224668; GISEL-NEXT: scratch_load_b32 v81, off, s32 offset:228669; GISEL-NEXT: scratch_load_b32 v82, off, s32 offset:232670; GISEL-NEXT: scratch_load_b32 v83, off, s32 offset:236671; GISEL-NEXT: scratch_load_b32 v84, off, s32 offset:240672; GISEL-NEXT: scratch_load_b32 v85, off, s32 offset:244673; GISEL-NEXT: scratch_load_b32 v86, off, s32 offset:248674; GISEL-NEXT: scratch_load_b32 v87, off, s32 offset:252675; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload676; GISEL-NEXT: scratch_load_b32 v96, off, s32 offset:256677; GISEL-NEXT: scratch_load_b32 v97, off, s32 offset:260678; GISEL-NEXT: scratch_load_b32 v98, off, s32 offset:264679; GISEL-NEXT: scratch_load_b32 v99, off, s32 offset:268680; GISEL-NEXT: scratch_load_b32 v100, off, s32 offset:272681; GISEL-NEXT: scratch_load_b32 v101, off, s32 offset:276682; GISEL-NEXT: scratch_load_b32 v102, off, s32 offset:280683; GISEL-NEXT: scratch_load_b32 v103, off, s32 offset:284684; GISEL-NEXT: scratch_load_b32 v112, off, s32 offset:288685; GISEL-NEXT: scratch_load_b32 v113, off, s32 offset:292686; GISEL-NEXT: scratch_load_b32 v114, off, s32 offset:296687; GISEL-NEXT: scratch_load_b32 v115, off, s32 offset:300688; GISEL-NEXT: scratch_load_b32 v116, off, s32 offset:304689; GISEL-NEXT: scratch_load_b32 v117, off, s32 offset:308690; GISEL-NEXT: scratch_load_b32 v118, off, s32 offset:312691; GISEL-NEXT: scratch_load_b32 v119, off, s32 offset:316692; GISEL-NEXT: scratch_load_b32 v128, off, s32 offset:320693; GISEL-NEXT: scratch_load_b32 v129, off, s32 offset:324694; GISEL-NEXT: scratch_load_b32 v130, off, s32 offset:328695; GISEL-NEXT: scratch_load_b32 v131, off, s32 offset:332696; GISEL-NEXT: scratch_load_b32 v132, off, s32 offset:336697; GISEL-NEXT: scratch_load_b32 v133, off, s32 offset:340698; GISEL-NEXT: scratch_load_b32 v134, off, s32 offset:344699; GISEL-NEXT: scratch_load_b32 v135, off, s32 offset:348700; GISEL-NEXT: scratch_load_b32 v144, off, s32 offset:352701; GISEL-NEXT: scratch_load_b32 v145, off, s32 offset:356702; GISEL-NEXT: scratch_load_b32 v146, off, s32 offset:360703; GISEL-NEXT: scratch_load_b32 v147, off, s32 offset:364704; GISEL-NEXT: scratch_load_b32 v148, off, s32 offset:368705; GISEL-NEXT: scratch_load_b32 v149, off, s32 offset:372706; GISEL-NEXT: scratch_load_b32 v150, off, s32 offset:376707; GISEL-NEXT: scratch_load_b32 v151, off, s32 offset:380708; GISEL-NEXT: s_clause 0x1f ; 128-byte Folded Reload709; GISEL-NEXT: scratch_load_b32 v160, off, s32 offset:384710; GISEL-NEXT: scratch_load_b32 v161, off, s32 offset:388711; GISEL-NEXT: scratch_load_b32 v162, off, s32 offset:392712; GISEL-NEXT: scratch_load_b32 v163, off, s32 offset:396713; GISEL-NEXT: scratch_load_b32 v164, off, s32 offset:400714; GISEL-NEXT: scratch_load_b32 v165, off, s32 offset:404715; GISEL-NEXT: scratch_load_b32 v166, off, s32 offset:408716; GISEL-NEXT: scratch_load_b32 v167, off, s32 offset:412717; GISEL-NEXT: scratch_load_b32 v176, off, s32 offset:416718; GISEL-NEXT: scratch_load_b32 v177, off, s32 offset:420719; GISEL-NEXT: scratch_load_b32 v178, off, s32 offset:424720; GISEL-NEXT: scratch_load_b32 v179, off, s32 offset:428721; GISEL-NEXT: scratch_load_b32 v180, off, s32 offset:432722; GISEL-NEXT: scratch_load_b32 v181, off, s32 offset:436723; GISEL-NEXT: scratch_load_b32 v182, off, s32 offset:440724; GISEL-NEXT: scratch_load_b32 v183, off, s32 offset:444725; GISEL-NEXT: scratch_load_b32 v192, off, s32 offset:448726; GISEL-NEXT: scratch_load_b32 v193, off, s32 offset:452727; GISEL-NEXT: scratch_load_b32 v194, off, s32 offset:456728; GISEL-NEXT: scratch_load_b32 v195, off, s32 offset:460729; GISEL-NEXT: scratch_load_b32 v196, off, s32 offset:464730; GISEL-NEXT: scratch_load_b32 v197, off, s32 offset:468731; GISEL-NEXT: scratch_load_b32 v198, off, s32 offset:472732; GISEL-NEXT: scratch_load_b32 v199, off, s32 offset:476733; GISEL-NEXT: scratch_load_b32 v208, off, s32 offset:480734; GISEL-NEXT: scratch_load_b32 v209, off, s32 offset:484735; GISEL-NEXT: scratch_load_b32 v210, off, s32 offset:488736; GISEL-NEXT: scratch_load_b32 v211, off, s32 offset:492737; GISEL-NEXT: scratch_load_b32 v212, off, s32 offset:496738; GISEL-NEXT: scratch_load_b32 v213, off, s32 offset:500739; GISEL-NEXT: scratch_load_b32 v214, off, s32 offset:504740; GISEL-NEXT: scratch_load_b32 v215, off, s32 offset:508741; GISEL-NEXT: s_clause 0xf ; 64-byte Folded Reload742; GISEL-NEXT: scratch_load_b32 v224, off, s32 offset:512743; GISEL-NEXT: scratch_load_b32 v225, off, s32 offset:516744; GISEL-NEXT: scratch_load_b32 v226, off, s32 offset:520745; GISEL-NEXT: scratch_load_b32 v227, off, s32 offset:524746; GISEL-NEXT: scratch_load_b32 v228, off, s32 offset:528747; GISEL-NEXT: scratch_load_b32 v229, off, s32 offset:532748; GISEL-NEXT: scratch_load_b32 v230, off, s32 offset:536749; GISEL-NEXT: scratch_load_b32 v231, off, s32 offset:540750; GISEL-NEXT: scratch_load_b32 v240, off, s32 offset:544751; GISEL-NEXT: scratch_load_b32 v241, off, s32 offset:548752; GISEL-NEXT: scratch_load_b32 v242, off, s32 offset:552753; GISEL-NEXT: scratch_load_b32 v243, off, s32 offset:556754; GISEL-NEXT: scratch_load_b32 v244, off, s32 offset:560755; GISEL-NEXT: scratch_load_b32 v245, off, s32 offset:564756; GISEL-NEXT: scratch_load_b32 v246, off, s32 offset:568757; GISEL-NEXT: scratch_load_b32 v247, off, s32 offset:572758; GISEL-NEXT: s_mov_b32 exec_lo, s0759; GISEL-NEXT: s_setpc_b64 s[36:37]760 %y = add i32 %x, 13761 %ret = tail call i32(ptr, ...) @llvm.amdgcn.call.whole.wave(ptr @good_callee, i32 %x, i32 %y, i32 inreg %c)762 ret i32 %ret763}764 765declare amdgpu_gfx_whole_wave void @void_callee(i1 %active, i32 %x)766 767define amdgpu_gfx void @ret_void(i32 %x) {768; DAGISEL-LABEL: ret_void:769; DAGISEL: ; %bb.0:770; DAGISEL-NEXT: s_wait_loadcnt_dscnt 0x0771; DAGISEL-NEXT: s_wait_expcnt 0x0772; DAGISEL-NEXT: s_wait_samplecnt 0x0773; DAGISEL-NEXT: s_wait_bvhcnt 0x0774; DAGISEL-NEXT: s_wait_kmcnt 0x0775; DAGISEL-NEXT: s_mov_b32 s0, s33776; DAGISEL-NEXT: s_mov_b32 s33, s32777; DAGISEL-NEXT: s_or_saveexec_b32 s1, -1778; DAGISEL-NEXT: scratch_store_b32 off, v40, s33 ; 4-byte Folded Spill779; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)780; DAGISEL-NEXT: s_mov_b32 exec_lo, s1781; DAGISEL-NEXT: v_writelane_b32 v40, s0, 2782; DAGISEL-NEXT: s_mov_b32 s1, void_callee@abs32@hi783; DAGISEL-NEXT: s_mov_b32 s0, void_callee@abs32@lo784; DAGISEL-NEXT: s_add_co_i32 s32, s32, 16785; DAGISEL-NEXT: v_writelane_b32 v40, s30, 0786; DAGISEL-NEXT: v_writelane_b32 v40, s31, 1787; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)788; DAGISEL-NEXT: s_swappc_b64 s[30:31], s[0:1]789; DAGISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)790; DAGISEL-NEXT: v_readlane_b32 s31, v40, 1791; DAGISEL-NEXT: v_readlane_b32 s30, v40, 0792; DAGISEL-NEXT: s_mov_b32 s32, s33793; DAGISEL-NEXT: v_readlane_b32 s0, v40, 2794; DAGISEL-NEXT: s_or_saveexec_b32 s1, -1795; DAGISEL-NEXT: scratch_load_b32 v40, off, s33 ; 4-byte Folded Reload796; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)797; DAGISEL-NEXT: s_mov_b32 exec_lo, s1798; DAGISEL-NEXT: s_mov_b32 s33, s0799; DAGISEL-NEXT: s_wait_loadcnt 0x0800; DAGISEL-NEXT: s_wait_alu depctr_sa_sdst(0)801; DAGISEL-NEXT: s_setpc_b64 s[30:31]802;803; GISEL-LABEL: ret_void:804; GISEL: ; %bb.0:805; GISEL-NEXT: s_wait_loadcnt_dscnt 0x0806; GISEL-NEXT: s_wait_expcnt 0x0807; GISEL-NEXT: s_wait_samplecnt 0x0808; GISEL-NEXT: s_wait_bvhcnt 0x0809; GISEL-NEXT: s_wait_kmcnt 0x0810; GISEL-NEXT: s_mov_b32 s0, s33811; GISEL-NEXT: s_mov_b32 s33, s32812; GISEL-NEXT: s_or_saveexec_b32 s1, -1813; GISEL-NEXT: scratch_store_b32 off, v40, s33 ; 4-byte Folded Spill814; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)815; GISEL-NEXT: s_mov_b32 exec_lo, s1816; GISEL-NEXT: v_writelane_b32 v40, s0, 2817; GISEL-NEXT: s_mov_b32 s0, void_callee@abs32@lo818; GISEL-NEXT: s_mov_b32 s1, void_callee@abs32@hi819; GISEL-NEXT: s_add_co_i32 s32, s32, 16820; GISEL-NEXT: v_writelane_b32 v40, s30, 0821; GISEL-NEXT: v_writelane_b32 v40, s31, 1822; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)823; GISEL-NEXT: s_swappc_b64 s[30:31], s[0:1]824; GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1)825; GISEL-NEXT: v_readlane_b32 s31, v40, 1826; GISEL-NEXT: v_readlane_b32 s30, v40, 0827; GISEL-NEXT: s_mov_b32 s32, s33828; GISEL-NEXT: v_readlane_b32 s0, v40, 2829; GISEL-NEXT: s_or_saveexec_b32 s1, -1830; GISEL-NEXT: scratch_load_b32 v40, off, s33 ; 4-byte Folded Reload831; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)832; GISEL-NEXT: s_mov_b32 exec_lo, s1833; GISEL-NEXT: s_mov_b32 s33, s0834; GISEL-NEXT: s_wait_loadcnt 0x0835; GISEL-NEXT: s_wait_alu depctr_sa_sdst(0)836; GISEL-NEXT: s_setpc_b64 s[30:31]837 call void(ptr, ...) @llvm.amdgcn.call.whole.wave(ptr @void_callee, i32 %x)838 ret void839}840 841