Skip to content

Commit 5f9b84b

Browse files
committed
Fix conflicts and tests
1 parent 3e44ef6 commit 5f9b84b

File tree

6 files changed

+151
-65
lines changed

6 files changed

+151
-65
lines changed

clang/lib/CodeGen/CGDebugInfo.cpp

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5436,11 +5436,7 @@ llvm::DILocalVariable *CGDebugInfo::EmitDeclareForHeterogeneousDwarf(
54365436
} else if (const auto *RT = dyn_cast<RecordType>(VD->getType())) {
54375437
// If VD is an anonymous union then Storage represents value for
54385438
// all union fields.
5439-
<<<<<<< HEAD
5440-
const RecordDecl *RD = RT->getOriginalDecl();
5441-
=======
54425439
const RecordDecl *RD = RT->getOriginalDecl()->getDefinitionOrSelf();
5443-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
54445440
if (RD->isUnion() && RD->isAnonymousStructOrUnion()) {
54455441
llvm::DIExprBuilder UnionExprBuilder{ExprBuilder};
54465442
llvm::DIExpression *UnionDIExpression = UnionExprBuilder.intoExpression();
@@ -6003,15 +5999,9 @@ llvm::DIGlobalVariableExpression *CGDebugInfo::CollectAnonRecordDecls(
60035999
// Ignore unnamed fields, but recurse into anonymous records.
60046000
if (FieldName.empty()) {
60056001
if (const auto *RT = dyn_cast<RecordType>(Field->getType()))
6006-
<<<<<<< HEAD
6007-
GVE =
6008-
CollectAnonRecordDecls(RT->getOriginalDecl()->getDefinitionOrSelf(),
6009-
Unit, LineNo, LinkageName, MS, Var, DContext);
6010-
=======
60116002
GVE = CollectAnonRecordDecls(
60126003
RT->getOriginalDecl()->getDefinitionOrSelf(), Unit, LineNo,
60136004
LinkageName, MS, Var, DContext);
6014-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
60156005
continue;
60166006
}
60176007
// Use VarDecl's Tag, Scope and Line number.
@@ -6040,12 +6030,8 @@ CGDebugInfo::CollectAnonRecordDeclsForHeterogeneousDwarf(
60406030
if (FieldName.empty()) {
60416031
if (const auto *RT = dyn_cast<RecordType>(Field->getType()))
60426032
GVE = CollectAnonRecordDeclsForHeterogeneousDwarf(
6043-
<<<<<<< HEAD
6044-
RT->getOriginalDecl(), Unit, LineNo, LinkageName, MS, Var, DContext);
6045-
=======
60466033
RT->getOriginalDecl()->getDefinitionOrSelf(), Unit, LineNo,
60476034
LinkageName, MS, Var, DContext);
6048-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
60496035
continue;
60506036
}
60516037
// Use VarDecl's Tag, Scope and Line number.
@@ -6409,12 +6395,8 @@ void CGDebugInfo::EmitGlobalVariableForHeterogeneousDwarf(
64096395
// to find the name of any field in the union.
64106396
llvm::dwarf::MemorySpace MS = getDWARFMemorySpace(D);
64116397
if (T->isUnionType() && DeclName.empty()) {
6412-
<<<<<<< HEAD
6413-
const RecordDecl *RD = T->castAs<RecordType>()->getOriginalDecl();
6414-
=======
64156398
const RecordDecl *RD =
64166399
T->castAs<RecordType>()->getOriginalDecl()->getDefinitionOrSelf();
6417-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
64186400
assert(RD->isAnonymousStructOrUnion() &&
64196401
"unnamed non-anonymous struct or union?");
64206402
// FIXME(KZHURAVL): No tests for this path.
@@ -6535,10 +6517,6 @@ void CGDebugInfo::EmitGlobalVariableForHeterogeneousDwarf(
65356517

65366518
if (const auto *ECD = dyn_cast<EnumConstantDecl>(VD)) {
65376519
const auto *ED = cast<EnumDecl>(ECD->getDeclContext());
6538-
<<<<<<< HEAD
6539-
assert(isa<EnumType>(ED->getASTContext().getCanonicalTagType(ED)) && "Enum without EnumType?");
6540-
=======
6541-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
65426520

65436521
if (CGM.getCodeGenOpts().EmitCodeView) {
65446522
// If CodeView, emit enums as global variables, unless they are defined
@@ -6551,16 +6529,9 @@ void CGDebugInfo::EmitGlobalVariableForHeterogeneousDwarf(
65516529
// If not CodeView, emit DW_TAG_enumeration_type if necessary. For
65526530
// example: for "enum { ZERO };", a DW_TAG_enumeration_type is created the
65536531
// first time `ZERO` is referenced in a function.
6554-
<<<<<<< HEAD
6555-
llvm::DIType *EDTy =
6556-
getOrCreateType(QualType(ED->getASTContext().getCanonicalTagType(ED)), Unit);
6557-
assert (EDTy->getTag() == llvm::dwarf::DW_TAG_enumeration_type);
6558-
(void)EDTy;
6559-
=======
65606532
CanQualType T = CGM.getContext().getCanonicalTagType(ED);
65616533
[[maybe_unused]] llvm::DIType *EDTy = getOrCreateType(T, Unit);
65626534
assert(EDTy->getTag() == llvm::dwarf::DW_TAG_enumeration_type);
6563-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
65646535
return;
65656536
}
65666537
}

llvm/include/llvm/BinaryFormat/Dwarf.def

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -639,15 +639,6 @@ HANDLE_DW_AT(0x3e0a, LLVM_ptrauth_authentication_mode, 0, LLVM)
639639
HANDLE_DW_AT(0x3e0b, LLVM_num_extra_inhabitants, 0, LLVM)
640640
HANDLE_DW_AT(0x3e0c, LLVM_stmt_sequence, 0, LLVM)
641641
HANDLE_DW_AT(0x3e0d, LLVM_coro_suspend_idx, 0, LLVM)
642-
<<<<<<< HEAD
643-
// Heterogeneous Debugging Extension defined at
644-
// https://llvm.org/docs/AMDGPUDwarfProposalForHeterogeneousDebugging.html.
645-
HANDLE_DW_AT(0x3e0e, LLVM_memory_space, 0, LLVM)
646-
HANDLE_DW_AT(0x3e0f, LLVM_address_space, 0, LLVM)
647-
HANDLE_DW_AT(0x3e10, LLVM_lanes, 0, LLVM)
648-
HANDLE_DW_AT(0x3e11, LLVM_lane_pc, 0, LLVM)
649-
HANDLE_DW_AT(0x3e12, LLVM_vector_size, 0, LLVM)
650-
=======
651642
// The DWARF v6 working draft defines DW_AT_alloc_type; use this LLVM-private ID
652643
// until that is released as an official standard.
653644
HANDLE_DW_AT(0x3e0e, LLVM_alloc_type, 0, LLVM)
@@ -658,7 +649,6 @@ HANDLE_DW_AT(0x3e10, LLVM_address_space, 0, LLVM)
658649
HANDLE_DW_AT(0x3e11, LLVM_lanes, 0, LLVM)
659650
HANDLE_DW_AT(0x3e12, LLVM_lane_pc, 0, LLVM)
660651
HANDLE_DW_AT(0x3e13, LLVM_vector_size, 0, LLVM)
661-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
662652

663653
// https://www.llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html#a-7-15-memory-space-encodings
664654
HANDLE_DW_MSPACE(0x0, none)
@@ -669,22 +659,11 @@ HANDLE_DW_MSPACE(0x4, private)
669659

670660
// https://llvm.org/docs/AMDGPUUsage.html#address-space-identifier
671661
HANDLE_DW_ASPACE(0x0, none)
672-
<<<<<<< HEAD
673-
HANDLE_DW_ASPACE_PRED(0x1, AMDGPU_generic, SELECT_AMDGPU)
674-
HANDLE_DW_ASPACE_PRED(0x2, AMDGPU_region, SELECT_AMDGPU)
675-
HANDLE_DW_ASPACE_PRED(0x3, AMDGPU_local, SELECT_AMDGPU)
676-
HANDLE_DW_ASPACE_PRED(0x5, AMDGPU_private_lane, SELECT_AMDGPU)
677-
HANDLE_DW_ASPACE_PRED(0x6, AMDGPU_private_wave, SELECT_AMDGPU)
678-
// The DWARF v6 working draft defines DW_AT_alloc_type; use this LLVM-private ID
679-
// until that is released as an official standard.
680-
HANDLE_DW_AT(0x3e13, LLVM_alloc_type, 0, LLVM)
681-
=======
682662
HANDLE_DW_ASPACE_PRED(AMDGPU::DWARFAS::GENERIC, AMDGPU_generic, SELECT_AMDGPU)
683663
HANDLE_DW_ASPACE_PRED(AMDGPU::DWARFAS::REGION, AMDGPU_region, SELECT_AMDGPU)
684664
HANDLE_DW_ASPACE_PRED(AMDGPU::DWARFAS::LOCAL, AMDGPU_local, SELECT_AMDGPU)
685665
HANDLE_DW_ASPACE_PRED(AMDGPU::DWARFAS::PRIVATE_LANE, AMDGPU_private_lane, SELECT_AMDGPU)
686666
HANDLE_DW_ASPACE_PRED(AMDGPU::DWARFAS::PRIVATE_WAVE, AMDGPU_private_wave, SELECT_AMDGPU)
687-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
688667

689668
// Apple extensions.
690669

llvm/test/CodeGen/AMDGPU/bf16.ll

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33037,8 +33037,6 @@ define i1 @v_fcmp_true_bf16(bfloat %a, bfloat %b) {
3303733037
ret i1 %op
3303833038
}
3303933039

33040-
<<<<<<< HEAD
33041-
=======
3304233040
declare bfloat @llvm.copysign.bf16(bfloat, bfloat)
3304333041

3304433042
define bfloat @v_copysign_bf16_bf16(bfloat %mag, bfloat %sign) {
@@ -34131,7 +34129,6 @@ define amdgpu_ps <2 x i32> @s_copysign_f64_bf16(double inreg %mag, bfloat inreg
3413134129
ret <2 x i32> %ins.1
3413234130
}
3413334131

34134-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
3413534132
define i16 @v_fptosi_bf16_to_i16(bfloat %x) {
3413634133
; GCN-LABEL: v_fptosi_bf16_to_i16:
3413734134
; GCN: ; %bb.0:

llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2549,13 +2549,12 @@ define void @test_dynamic_stackalloc_device_divergent_non_standard_size_i16(i16
25492549
; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
25502550
; GFX11-SDAG-NEXT: s_mov_b32 s4, s33
25512551
; GFX11-SDAG-NEXT: s_mov_b32 s33, s32
2552-
; GFX11-SDAG-NEXT: v_mov_b16_e32 v1.h, 0
2553-
; GFX11-SDAG-NEXT: v_mov_b16_e32 v1.l, v0.l
2552+
; GFX11-SDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
25542553
; GFX11-SDAG-NEXT: s_mov_b32 s1, exec_lo
25552554
; GFX11-SDAG-NEXT: s_mov_b32 s0, 0
25562555
; GFX11-SDAG-NEXT: s_add_i32 s32, s32, 16
25572556
; GFX11-SDAG-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
2558-
; GFX11-SDAG-NEXT: v_lshl_add_u32 v0, v1, 2, 15
2557+
; GFX11-SDAG-NEXT: v_lshl_add_u32 v0, v0, 2, 15
25592558
; GFX11-SDAG-NEXT: v_and_b32_e32 v0, 0x7fff0, v0
25602559
; GFX11-SDAG-NEXT: .LBB16_1: ; =>This Inner Loop Header: Depth=1
25612560
; GFX11-SDAG-NEXT: s_ctz_i32_b32 s2, s1

llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll

Lines changed: 147 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
<<<<<<< HEAD
3-
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-spill-sgpr-to-vgpr=true < %s | FileCheck -check-prefix=SPILL-TO-VGPR %s
4-
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-spill-sgpr-to-vgpr=false < %s | FileCheck -check-prefix=NO-SPILL-TO-VGPR %s
5-
=======
62
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-spill-sgpr-to-vgpr=true -amdgpu-spill-cfi-saved-regs=false < %s | FileCheck -check-prefixes=NO-CFI-SAVES-SPILL-TO-VGPR %s
73
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-spill-sgpr-to-vgpr=true -amdgpu-spill-cfi-saved-regs=true < %s | FileCheck -check-prefixes=CFI-SAVES-SPILL-TO-VGPR %s
84
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-spill-sgpr-to-vgpr=false -amdgpu-spill-cfi-saved-regs=false < %s | FileCheck -check-prefixes=NO-CFI-SAVES-NO-SPILL-TO-VGPR %s
95
; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -amdgpu-spill-sgpr-to-vgpr=false -amdgpu-spill-cfi-saved-regs=true < %s | FileCheck -check-prefixes=CFI-SAVES-NO-SPILL-TO-VGPR %s
10-
>>>>>>> a9becbe509280bd147cef54315b3efc15d5aa594
116

127
; Check frame setup where SGPR spills to VGPRs are disabled or enabled.
138

@@ -84,6 +79,153 @@ define void @callee_with_stack_and_call() #0 {
8479
; NO-SPILL-TO-VGPR-NEXT: v_readfirstlane_b32 s4, v0
8580
; NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
8681
; NO-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
82+
; NO-CFI-SAVES-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
83+
; NO-CFI-SAVES-SPILL-TO-VGPR: ; %bb.0:
84+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
85+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
86+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
87+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[8:9], -1
88+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
89+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[8:9]
90+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s4, 2
91+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s30, 0
92+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x400
93+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s31, 1
94+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
95+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
96+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
97+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
98+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
99+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
100+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
101+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v40, 0
102+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v40, 1
103+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
104+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s4, v40, 2
105+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[6:7], -1
106+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_load_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
107+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[6:7]
108+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
109+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
110+
; NO-CFI-SAVES-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
111+
;
112+
; CFI-SAVES-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
113+
; CFI-SAVES-SPILL-TO-VGPR: ; %bb.0:
114+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
115+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
116+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
117+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[8:9], -1
118+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
119+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[8:9]
120+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, exec_lo, 2
121+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, exec_hi, 3
122+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s4, 4
123+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s30, 0
124+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x400
125+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_writelane_b32 v40, s31, 1
126+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
127+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
128+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
129+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
130+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
131+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
132+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
133+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v40, 0
134+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v40, 1
135+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
136+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: v_readlane_b32 s4, v40, 4
137+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_or_saveexec_b64 s[6:7], -1
138+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: buffer_load_dword v40, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
139+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[6:7]
140+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
141+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
142+
; CFI-SAVES-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
143+
;
144+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
145+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR: ; %bb.0:
146+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
147+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
148+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
149+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, s4
150+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
151+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x800
152+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
153+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
154+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
155+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s30, 0
156+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s31, 1
157+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
158+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
159+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
160+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
161+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
162+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
163+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
164+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
165+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
166+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
167+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
168+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
169+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
170+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16
171+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
172+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
173+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v0, 0
174+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v0, 1
175+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:16
176+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
177+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
178+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
179+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
180+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
181+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readfirstlane_b32 s4, v0
182+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
183+
; NO-CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
184+
;
185+
; CFI-SAVES-NO-SPILL-TO-VGPR-LABEL: callee_with_stack_and_call:
186+
; CFI-SAVES-NO-SPILL-TO-VGPR: ; %bb.0:
187+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
188+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s4, s33
189+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s32
190+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, exec_lo
191+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
192+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, exec_hi
193+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
194+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, s4
195+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
196+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addk_i32 s32, 0x800
197+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
198+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
199+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:24
200+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s30, 0
201+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_writelane_b32 v0, s31, 1
202+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
203+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:24
204+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
205+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
206+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_mov_b32_e32 v0, 0
207+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_getpc_b64 s[4:5]
208+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_add_u32 s4, s4, external_void_func_void@rel32@lo+4
209+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_addc_u32 s5, s5, external_void_func_void@rel32@hi+12
210+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33
211+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
212+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_swappc_b64 s[30:31], s[4:5]
213+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 s[4:5], exec
214+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, 3
215+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_store_dword v0, off, s[0:3], s33 offset:24
216+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
217+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
218+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s30, v0, 0
219+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readlane_b32 s31, v0, 1
220+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:24
221+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
222+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b64 exec, s[4:5]
223+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: buffer_load_dword v0, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
224+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s32, s33
225+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_waitcnt vmcnt(0)
226+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: v_readfirstlane_b32 s4, v0
227+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_mov_b32 s33, s4
228+
; CFI-SAVES-NO-SPILL-TO-VGPR-NEXT: s_setpc_b64 s[30:31]
87229
%alloca = alloca i32, addrspace(5)
88230
store volatile i32 0, ptr addrspace(5) %alloca
89231
call void @external_void_func_void()

0 commit comments

Comments
 (0)