.amdgcn_target "amdgcn-unknown-amdhsa--gfx803" .text .align 4 .globl foo .type foo,@function foo: .LFB0: ; using flat addressing in function ; frame pointer needed: true ; lr needs saving: false ; outgoing args size: 0 ; pretend size: 0 ; local vars size: 0 ; callee save size: 8 v_writelane_b32 v6, s14, 0 v_writelane_b32 v6, s15, 1 s_mov_b64 exec, -1 v_lshlrev_b32 v3, 2, v1 v_mov_b32 v4, s16 v_mov_b32 v5, s17 v_add_u32 v4, vcc, v3, v4 v_addc_u32 v5, vcc, 0, v5, vcc s_mov_b64 exec, 3 flat_store_dword v[4:5], v6 s_add_u32 s16, s16, 8 s_addc_u32 s17, s17, 0 .LCFI0: s_add_u32 s14, s16, 0 .LCFI1: s_addc_u32 s15, s17, 0 s_mov_b32 m0, 65536 ; 5 "test.c" 1 ; one ; 0 "" 2 s_mov_b32 s2, -1 s_mov_b32 s3, 65535 s_and_b64 s[2:3], s[0:1], s[2:3] s_add_u32 s12, s4, 24 s_addc_u32 s13, s5, 0 v_writelane_b32 v4, s12, 0 v_writelane_b32 v5, s13, 0 s_mov_b64 exec, 1 flat_load_dword v0, v[4:5] s_waitcnt 0 v_lshlrev_b32 v0, 6, v0 v_readlane_b32 s12, v0, 0 s_mov_b32 s13, 0 s_add_u32 s2, s2, s12 s_addc_u32 s3, s3, s13 s_mov_b32 s13, 0 s_add_u32 s2, s2, s11 s_addc_u32 s3, s3, s13 ; 7 "test.c" 1 ; two ; 0 "" 2 s_getpc_b64 s[12:13] s_add_u32 s12, s12, ptr@rel32@lo+4 s_addc_u32 s13, s13, ptr@rel32@hi+4 s_add_u32 s2, s2, 1234 s_addc_u32 s3, s3, 0 v_writelane_b32 v4, s12, 0 v_writelane_b32 v5, s13, 0 v_writelane_b32 v6, s2, 0 v_writelane_b32 v7, s3, 0 flat_store_dwordx2 v[4:5], v[6:7] s_sub_u32 s16, s14, 8 s_subb_u32 s17, s15, 0 s_mov_b64 exec, -1 v_lshlrev_b32 v3, 2, v1 v_mov_b32 v4, s16 v_mov_b32 v5, s17 v_add_u32 v4, vcc, v3, v4 v_addc_u32 v5, vcc, 0, v5, vcc s_mov_b64 exec, 3 flat_load_dword v6, v[4:5] s_waitcnt 0 v_readlane_b32 s14, v6, 0 v_readlane_b32 s15, v6, 1 s_setpc_b64 s[18:19] .LFE0: .size foo, .-foo .align 4 .globl bar .type bar,@function bar: .LFB1: ; using flat addressing in function ; frame pointer needed: true ; lr needs saving: false ; outgoing args size: 0 ; pretend size: 0 ; local vars size: 0 ; callee save size: 8 v_writelane_b32 v6, s14, 0 v_writelane_b32 v6, s15, 1 s_mov_b64 exec, -1 v_lshlrev_b32 v3, 2, v1 v_mov_b32 v4, s16 v_mov_b32 v5, s17 v_add_u32 v4, vcc, v3, v4 v_addc_u32 v5, vcc, 0, v5, vcc s_mov_b64 exec, 3 flat_store_dword v[4:5], v6 s_add_u32 s16, s16, 8 s_addc_u32 s17, s17, 0 .LCFI2: s_add_u32 s14, s16, 0 .LCFI3: s_addc_u32 s15, s17, 0 s_mov_b32 m0, 65536 ; 15 "test.c" 1 ; three ; 0 "" 2 s_lshr_b64 s[2:3], s[0:1], 48 s_cmp_lg_u64 s[2:3], 12345 s_mov_b32 s2, scc s_mov_b32 vcc_lo, scc s_mov_b32 vcc_hi, 0 s_cbranch_vccz .L4 v_writelane_b32 v4, s0, 0 v_writelane_b32 v5, s1, 0 s_mov_b64 exec, 1 v_and_b32 v4, -1, v4 v_and_b32 v5, 65535, v5 v_or_b32 v4, 0, v4 v_or_b32 v5, 809041920, v5 .L4: s_lshl_b32 s2, s2, 31 s_lshr_b32 s2, s2, 31 ; 17 "test.c" 1 ; four ; 0 "" 2 s_getpc_b64 s[12:13] s_add_u32 s12, s12, b@rel32@lo+4 s_addc_u32 s13, s13, b@rel32@hi+4 v_writelane_b32 v4, s12, 0 v_writelane_b32 v5, s13, 0 v_writelane_b32 v0, s2, 0 s_mov_b64 exec, 1 flat_store_dword v[4:5], v0 glc ; 19 "test.c" 1 ; five ; 0 "" 2 s_cmp_eq_u32 s2, 0 s_cbranch_scc1 .L5 ; 21 "test.c" 1 ;true ; 0 "" 2 .L3: s_sub_u32 s16, s14, 8 s_subb_u32 s17, s15, 0 s_mov_b64 exec, -1 v_lshlrev_b32 v3, 2, v1 v_mov_b32 v4, s16 v_mov_b32 v5, s17 v_add_u32 v4, vcc, v3, v4 v_addc_u32 v5, vcc, 0, v5, vcc s_mov_b64 exec, 3 flat_load_dword v6, v[4:5] s_waitcnt 0 v_readlane_b32 s14, v6, 0 v_readlane_b32 s15, v6, 1 s_setpc_b64 s[18:19] .L5: ; 23 "test.c" 1 ;false ; 0 "" 2 s_branch .L3 .LFE1: .size bar, .-bar .globl b .bss .align 16 .type b, @object .size b, 4 b: .zero 4 .globl ptr .align 16 .type ptr, @object .size ptr, 8 ptr: .zero 8 .section .debug_frame,"",@progbits .Lframe0: .4byte .LECIE0-.LSCIE0 .LSCIE0: .4byte 0xffffffff .byte 0x3 .string "" .byte 0x1 .byte 0x4 .byte 0x10 .byte 0xf .byte 0xa .byte 0x92 .byte 0x31 .byte 0 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x92 .byte 0x30 .byte 0 .byte 0x22 .byte 0x10 .byte 0x10 .byte 0xa .byte 0x92 .byte 0x33 .byte 0 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x92 .byte 0x32 .byte 0 .byte 0x22 .align 8 .LECIE0: .LSFDE0: .4byte .LEFDE0-.LASFDE0 .LASFDE0: .4byte .Lframe0 .8byte .LFB0 .8byte .LFE0-.LFB0 .byte 0x4 .4byte .LCFI0-.LFB0 .byte 0xae .byte 0 .byte 0xaf .byte 0x1 .byte 0x4 .4byte .LCFI1-.LCFI0 .byte 0xf .byte 0xc .byte 0x92 .byte 0x2f .byte 0 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x92 .byte 0x2e .byte 0 .byte 0x22 .byte 0x38 .byte 0x1c .align 8 .LEFDE0: .LSFDE2: .4byte .LEFDE2-.LASFDE2 .LASFDE2: .4byte .Lframe0 .8byte .LFB1 .8byte .LFE1-.LFB1 .byte 0x4 .4byte .LCFI2-.LFB1 .byte 0xae .byte 0 .byte 0xaf .byte 0x1 .byte 0x4 .4byte .LCFI3-.LCFI2 .byte 0xf .byte 0xc .byte 0x92 .byte 0x2f .byte 0 .byte 0x8 .byte 0x20 .byte 0x24 .byte 0x92 .byte 0x2e .byte 0 .byte 0x22 .byte 0x38 .byte 0x1c .align 8 .LEFDE2: .ident "GCC: (GNU) 13.0.0 20221121 (experimental)"