228 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn--amdpal -mcpu=gfx900 < %s | FileCheck -check-prefix=SDAG -enable-var-scope %s3; RUN: llc -global-isel -mtriple=amdgcn--amdpal -mcpu=gfx900 < %s | FileCheck -check-prefix=GISEL -enable-var-scope %s4 5declare void @extern_c_func()6 7define amdgpu_gfx void @gfx_func() {8; SDAG-LABEL: gfx_func:9; SDAG: ; %bb.0:10; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11; SDAG-NEXT: s_mov_b32 s36, s3312; SDAG-NEXT: s_mov_b32 s33, s3213; SDAG-NEXT: s_or_saveexec_b64 s[34:35], -114; SDAG-NEXT: buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill15; SDAG-NEXT: s_mov_b64 exec, s[34:35]16; SDAG-NEXT: v_writelane_b32 v40, s4, 017; SDAG-NEXT: v_writelane_b32 v40, s5, 118; SDAG-NEXT: v_writelane_b32 v40, s6, 219; SDAG-NEXT: v_writelane_b32 v40, s7, 320; SDAG-NEXT: v_writelane_b32 v40, s8, 421; SDAG-NEXT: v_writelane_b32 v40, s9, 522; SDAG-NEXT: v_writelane_b32 v40, s10, 623; SDAG-NEXT: v_writelane_b32 v40, s11, 724; SDAG-NEXT: v_writelane_b32 v40, s12, 825; SDAG-NEXT: v_writelane_b32 v40, s13, 926; SDAG-NEXT: v_writelane_b32 v40, s14, 1027; SDAG-NEXT: v_writelane_b32 v40, s15, 1128; SDAG-NEXT: v_writelane_b32 v40, s16, 1229; SDAG-NEXT: v_writelane_b32 v40, s17, 1330; SDAG-NEXT: v_writelane_b32 v40, s18, 1431; SDAG-NEXT: v_writelane_b32 v40, s19, 1532; SDAG-NEXT: v_writelane_b32 v40, s20, 1633; SDAG-NEXT: v_writelane_b32 v40, s21, 1734; SDAG-NEXT: v_writelane_b32 v40, s22, 1835; SDAG-NEXT: v_writelane_b32 v40, s23, 1936; SDAG-NEXT: v_writelane_b32 v40, s24, 2037; SDAG-NEXT: v_writelane_b32 v40, s25, 2138; SDAG-NEXT: v_writelane_b32 v40, s26, 2239; SDAG-NEXT: v_writelane_b32 v40, s27, 2340; SDAG-NEXT: v_writelane_b32 v40, s28, 2441; SDAG-NEXT: v_writelane_b32 v40, s29, 2542; SDAG-NEXT: v_writelane_b32 v40, s30, 2643; SDAG-NEXT: v_writelane_b32 v40, s31, 2744; SDAG-NEXT: v_writelane_b32 v40, s72, 2845; SDAG-NEXT: v_writelane_b32 v40, s73, 2946; SDAG-NEXT: v_writelane_b32 v40, s74, 3047; SDAG-NEXT: v_writelane_b32 v40, s75, 3148; SDAG-NEXT: v_writelane_b32 v40, s76, 3249; SDAG-NEXT: v_writelane_b32 v40, s77, 3350; SDAG-NEXT: v_writelane_b32 v40, s78, 3451; SDAG-NEXT: v_writelane_b32 v40, s79, 3552; SDAG-NEXT: v_writelane_b32 v40, s88, 3653; SDAG-NEXT: v_writelane_b32 v40, s89, 3754; SDAG-NEXT: v_writelane_b32 v40, s90, 3855; SDAG-NEXT: v_writelane_b32 v40, s91, 3956; SDAG-NEXT: v_writelane_b32 v40, s92, 4057; SDAG-NEXT: v_writelane_b32 v40, s93, 4158; SDAG-NEXT: v_writelane_b32 v40, s94, 4259; SDAG-NEXT: s_mov_b32 s35, extern_c_func@abs32@hi60; SDAG-NEXT: s_mov_b32 s34, extern_c_func@abs32@lo61; SDAG-NEXT: s_mov_b64 s[8:9], 062; SDAG-NEXT: s_addk_i32 s32, 0x40063; SDAG-NEXT: v_writelane_b32 v40, s95, 4364; SDAG-NEXT: s_swappc_b64 s[30:31], s[34:35]65; SDAG-NEXT: v_readlane_b32 s95, v40, 4366; SDAG-NEXT: v_readlane_b32 s94, v40, 4267; SDAG-NEXT: v_readlane_b32 s93, v40, 4168; SDAG-NEXT: v_readlane_b32 s92, v40, 4069; SDAG-NEXT: v_readlane_b32 s91, v40, 3970; SDAG-NEXT: v_readlane_b32 s90, v40, 3871; SDAG-NEXT: v_readlane_b32 s89, v40, 3772; SDAG-NEXT: v_readlane_b32 s88, v40, 3673; SDAG-NEXT: v_readlane_b32 s79, v40, 3574; SDAG-NEXT: v_readlane_b32 s78, v40, 3475; SDAG-NEXT: v_readlane_b32 s77, v40, 3376; SDAG-NEXT: v_readlane_b32 s76, v40, 3277; SDAG-NEXT: v_readlane_b32 s75, v40, 3178; SDAG-NEXT: v_readlane_b32 s74, v40, 3079; SDAG-NEXT: v_readlane_b32 s73, v40, 2980; SDAG-NEXT: v_readlane_b32 s72, v40, 2881; SDAG-NEXT: v_readlane_b32 s31, v40, 2782; SDAG-NEXT: v_readlane_b32 s30, v40, 2683; SDAG-NEXT: v_readlane_b32 s29, v40, 2584; SDAG-NEXT: v_readlane_b32 s28, v40, 2485; SDAG-NEXT: v_readlane_b32 s27, v40, 2386; SDAG-NEXT: v_readlane_b32 s26, v40, 2287; SDAG-NEXT: v_readlane_b32 s25, v40, 2188; SDAG-NEXT: v_readlane_b32 s24, v40, 2089; SDAG-NEXT: v_readlane_b32 s23, v40, 1990; SDAG-NEXT: v_readlane_b32 s22, v40, 1891; SDAG-NEXT: v_readlane_b32 s21, v40, 1792; SDAG-NEXT: v_readlane_b32 s20, v40, 1693; SDAG-NEXT: v_readlane_b32 s19, v40, 1594; SDAG-NEXT: v_readlane_b32 s18, v40, 1495; SDAG-NEXT: v_readlane_b32 s17, v40, 1396; SDAG-NEXT: v_readlane_b32 s16, v40, 1297; SDAG-NEXT: v_readlane_b32 s15, v40, 1198; SDAG-NEXT: v_readlane_b32 s14, v40, 1099; SDAG-NEXT: v_readlane_b32 s13, v40, 9100; SDAG-NEXT: v_readlane_b32 s12, v40, 8101; SDAG-NEXT: v_readlane_b32 s11, v40, 7102; SDAG-NEXT: v_readlane_b32 s10, v40, 6103; SDAG-NEXT: v_readlane_b32 s9, v40, 5104; SDAG-NEXT: v_readlane_b32 s8, v40, 4105; SDAG-NEXT: v_readlane_b32 s7, v40, 3106; SDAG-NEXT: v_readlane_b32 s6, v40, 2107; SDAG-NEXT: v_readlane_b32 s5, v40, 1108; SDAG-NEXT: v_readlane_b32 s4, v40, 0109; SDAG-NEXT: s_mov_b32 s32, s33110; SDAG-NEXT: s_or_saveexec_b64 s[34:35], -1111; SDAG-NEXT: buffer_load_dword v40, off, s[0:3], s33 ; 4-byte Folded Reload112; SDAG-NEXT: s_mov_b64 exec, s[34:35]113; SDAG-NEXT: s_mov_b32 s33, s36114; SDAG-NEXT: s_waitcnt vmcnt(0)115; SDAG-NEXT: s_setpc_b64 s[30:31]116;117; GISEL-LABEL: gfx_func:118; GISEL: ; %bb.0:119; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)120; GISEL-NEXT: s_mov_b32 s36, s33121; GISEL-NEXT: s_mov_b32 s33, s32122; GISEL-NEXT: s_or_saveexec_b64 s[34:35], -1123; GISEL-NEXT: buffer_store_dword v40, off, s[0:3], s33 ; 4-byte Folded Spill124; GISEL-NEXT: s_mov_b64 exec, s[34:35]125; GISEL-NEXT: v_writelane_b32 v40, s4, 0126; GISEL-NEXT: v_writelane_b32 v40, s5, 1127; GISEL-NEXT: v_writelane_b32 v40, s6, 2128; GISEL-NEXT: v_writelane_b32 v40, s7, 3129; GISEL-NEXT: v_writelane_b32 v40, s8, 4130; GISEL-NEXT: v_writelane_b32 v40, s9, 5131; GISEL-NEXT: v_writelane_b32 v40, s10, 6132; GISEL-NEXT: v_writelane_b32 v40, s11, 7133; GISEL-NEXT: v_writelane_b32 v40, s12, 8134; GISEL-NEXT: v_writelane_b32 v40, s13, 9135; GISEL-NEXT: v_writelane_b32 v40, s14, 10136; GISEL-NEXT: v_writelane_b32 v40, s15, 11137; GISEL-NEXT: v_writelane_b32 v40, s16, 12138; GISEL-NEXT: v_writelane_b32 v40, s17, 13139; GISEL-NEXT: v_writelane_b32 v40, s18, 14140; GISEL-NEXT: v_writelane_b32 v40, s19, 15141; GISEL-NEXT: v_writelane_b32 v40, s20, 16142; GISEL-NEXT: v_writelane_b32 v40, s21, 17143; GISEL-NEXT: v_writelane_b32 v40, s22, 18144; GISEL-NEXT: v_writelane_b32 v40, s23, 19145; GISEL-NEXT: v_writelane_b32 v40, s24, 20146; GISEL-NEXT: v_writelane_b32 v40, s25, 21147; GISEL-NEXT: v_writelane_b32 v40, s26, 22148; GISEL-NEXT: v_writelane_b32 v40, s27, 23149; GISEL-NEXT: v_writelane_b32 v40, s28, 24150; GISEL-NEXT: v_writelane_b32 v40, s29, 25151; GISEL-NEXT: v_writelane_b32 v40, s30, 26152; GISEL-NEXT: v_writelane_b32 v40, s31, 27153; GISEL-NEXT: v_writelane_b32 v40, s72, 28154; GISEL-NEXT: v_writelane_b32 v40, s73, 29155; GISEL-NEXT: v_writelane_b32 v40, s74, 30156; GISEL-NEXT: v_writelane_b32 v40, s75, 31157; GISEL-NEXT: v_writelane_b32 v40, s76, 32158; GISEL-NEXT: v_writelane_b32 v40, s77, 33159; GISEL-NEXT: v_writelane_b32 v40, s78, 34160; GISEL-NEXT: v_writelane_b32 v40, s79, 35161; GISEL-NEXT: v_writelane_b32 v40, s88, 36162; GISEL-NEXT: v_writelane_b32 v40, s89, 37163; GISEL-NEXT: v_writelane_b32 v40, s90, 38164; GISEL-NEXT: v_writelane_b32 v40, s91, 39165; GISEL-NEXT: v_writelane_b32 v40, s92, 40166; GISEL-NEXT: v_writelane_b32 v40, s93, 41167; GISEL-NEXT: v_writelane_b32 v40, s94, 42168; GISEL-NEXT: s_mov_b32 s34, extern_c_func@abs32@lo169; GISEL-NEXT: s_mov_b32 s35, extern_c_func@abs32@hi170; GISEL-NEXT: s_mov_b64 s[8:9], 0171; GISEL-NEXT: s_addk_i32 s32, 0x400172; GISEL-NEXT: v_writelane_b32 v40, s95, 43173; GISEL-NEXT: s_swappc_b64 s[30:31], s[34:35]174; GISEL-NEXT: v_readlane_b32 s95, v40, 43175; GISEL-NEXT: v_readlane_b32 s94, v40, 42176; GISEL-NEXT: v_readlane_b32 s93, v40, 41177; GISEL-NEXT: v_readlane_b32 s92, v40, 40178; GISEL-NEXT: v_readlane_b32 s91, v40, 39179; GISEL-NEXT: v_readlane_b32 s90, v40, 38180; GISEL-NEXT: v_readlane_b32 s89, v40, 37181; GISEL-NEXT: v_readlane_b32 s88, v40, 36182; GISEL-NEXT: v_readlane_b32 s79, v40, 35183; GISEL-NEXT: v_readlane_b32 s78, v40, 34184; GISEL-NEXT: v_readlane_b32 s77, v40, 33185; GISEL-NEXT: v_readlane_b32 s76, v40, 32186; GISEL-NEXT: v_readlane_b32 s75, v40, 31187; GISEL-NEXT: v_readlane_b32 s74, v40, 30188; GISEL-NEXT: v_readlane_b32 s73, v40, 29189; GISEL-NEXT: v_readlane_b32 s72, v40, 28190; GISEL-NEXT: v_readlane_b32 s31, v40, 27191; GISEL-NEXT: v_readlane_b32 s30, v40, 26192; GISEL-NEXT: v_readlane_b32 s29, v40, 25193; GISEL-NEXT: v_readlane_b32 s28, v40, 24194; GISEL-NEXT: v_readlane_b32 s27, v40, 23195; GISEL-NEXT: v_readlane_b32 s26, v40, 22196; GISEL-NEXT: v_readlane_b32 s25, v40, 21197; GISEL-NEXT: v_readlane_b32 s24, v40, 20198; GISEL-NEXT: v_readlane_b32 s23, v40, 19199; GISEL-NEXT: v_readlane_b32 s22, v40, 18200; GISEL-NEXT: v_readlane_b32 s21, v40, 17201; GISEL-NEXT: v_readlane_b32 s20, v40, 16202; GISEL-NEXT: v_readlane_b32 s19, v40, 15203; GISEL-NEXT: v_readlane_b32 s18, v40, 14204; GISEL-NEXT: v_readlane_b32 s17, v40, 13205; GISEL-NEXT: v_readlane_b32 s16, v40, 12206; GISEL-NEXT: v_readlane_b32 s15, v40, 11207; GISEL-NEXT: v_readlane_b32 s14, v40, 10208; GISEL-NEXT: v_readlane_b32 s13, v40, 9209; GISEL-NEXT: v_readlane_b32 s12, v40, 8210; GISEL-NEXT: v_readlane_b32 s11, v40, 7211; GISEL-NEXT: v_readlane_b32 s10, v40, 6212; GISEL-NEXT: v_readlane_b32 s9, v40, 5213; GISEL-NEXT: v_readlane_b32 s8, v40, 4214; GISEL-NEXT: v_readlane_b32 s7, v40, 3215; GISEL-NEXT: v_readlane_b32 s6, v40, 2216; GISEL-NEXT: v_readlane_b32 s5, v40, 1217; GISEL-NEXT: v_readlane_b32 s4, v40, 0218; GISEL-NEXT: s_mov_b32 s32, s33219; GISEL-NEXT: s_or_saveexec_b64 s[34:35], -1220; GISEL-NEXT: buffer_load_dword v40, off, s[0:3], s33 ; 4-byte Folded Reload221; GISEL-NEXT: s_mov_b64 exec, s[34:35]222; GISEL-NEXT: s_mov_b32 s33, s36223; GISEL-NEXT: s_waitcnt vmcnt(0)224; GISEL-NEXT: s_setpc_b64 s[30:31]225 call void @extern_c_func()226 ret void227}228