//
// Created by igor on 28.03.2021.
//

#include "Matrix4.cuh"

__host__ __device__ double *Matrix4::operator[](unsigned long x) {
    return data[x];
}

Matrix4::Matrix4(std::initializer_list<double> list) noexcept : data(){
    int i = 0;
    for(double d: list){
        data[0][i]=d;
        ++i;
    }
}

const Matrix4 Matrix4::IDENTITY = {1, 0, 0, 0,
                                   0, 1, 0, 0,
                                   0, 0, 1, 0,
                                   0, 0, 0, 1};

Matrix4 Matrix4::fromAxisAngle(Vector3 axis, double angle) {
    return {};
    //TODO implement
}

Matrix4 Matrix4::fromScaleFactor(double x, double y, double z) {
    return {x, 0, 0, 0,
            0, y, 0, 0,
            0, 0, z, 0,
            0, 0, 0, 1};
}

Matrix4 Matrix4::fromTranslationVector(const Vector3 &v) {
    return {1, 0, 0, v.x,
            0, 1, 0, v.y,
            0, 0, 1, v.z,
            0, 0, 0, 1};
}

Matrix4::Matrix4() :Matrix4{1, 0, 0, 0,
                            0, 1, 0, 0,
                            0, 0, 1, 0,
                            0, 0, 0, 1}{}


	.file	"tmpxft_002c6964_00000000-6_Matrix4.cudafe1.cpp"
	.text
#APP

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB2020:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE2020:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.align 2
	.globl	_ZN7Matrix4ixEm
	.type	_ZN7Matrix4ixEm, @function
_ZN7Matrix4ixEm:
.LFB2008:
	.cfi_startproc
	endbr64
	salq	$5, %rsi
	leaq	(%rdi,%rsi), %rax
	ret
	.cfi_endproc
.LFE2008:
	.size	_ZN7Matrix4ixEm, .-_ZN7Matrix4ixEm
	.align 2
	.globl	_ZN7Matrix4C2ESt16initializer_listIdE
	.type	_ZN7Matrix4C2ESt16initializer_listIdE, @function
_ZN7Matrix4C2ESt16initializer_listIdE:
.LFB2010:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	leaq	128(%rdi), %rcx
.L4:
	movq	$0x000000000, (%rax)
	addq	$32, %rax
	movq	$0x000000000, -24(%rax)
	movq	$0x000000000, -16(%rax)
	movq	$0x000000000, -8(%rax)
	cmpq	%rax, %rcx
	jne	.L4
	salq	$3, %rdx
	xorl	%eax, %eax
.L5:
	cmpq	%rax, %rdx
	je	.L9
	movsd	(%rsi,%rax), %xmm0
	movsd	%xmm0, (%rdi,%rax)
	addq	$8, %rax
	jmp	.L5
.L9:
	ret
	.cfi_endproc
.LFE2010:
	.size	_ZN7Matrix4C2ESt16initializer_listIdE, .-_ZN7Matrix4C2ESt16initializer_listIdE
	.globl	_ZN7Matrix4C1ESt16initializer_listIdE
	.set	_ZN7Matrix4C1ESt16initializer_listIdE,_ZN7Matrix4C2ESt16initializer_listIdE
	.align 2
	.globl	_ZN7Matrix415fromScaleFactorEddd
	.type	_ZN7Matrix415fromScaleFactorEddd, @function
_ZN7Matrix415fromScaleFactorEddd:
.LFB2013:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movl	$16, %edx
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	movq	.LC2(%rip), %rax
	leaq	8(%rsp), %rsi
	movq	$0x000000000, 16(%rsp)
	movq	$0x000000000, 24(%rsp)
	movq	%rax, 128(%rsp)
	movq	$0x000000000, 32(%rsp)
	movq	$0x000000000, 40(%rsp)
	movq	$0x000000000, 56(%rsp)
	movq	$0x000000000, 64(%rsp)
	movq	$0x000000000, 72(%rsp)
	movq	$0x000000000, 80(%rsp)
	movq	$0x000000000, 96(%rsp)
	movq	$0x000000000, 104(%rsp)
	movq	$0x000000000, 112(%rsp)
	movq	$0x000000000, 120(%rsp)
	movsd	%xmm0, 8(%rsp)
	movsd	%xmm1, 48(%rsp)
	movsd	%xmm2, 88(%rsp)
	call	_ZN7Matrix4C1ESt16initializer_listIdE
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L11
	call	__stack_chk_fail@PLT
.L11:
	movq	%rdi, %rax
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2013:
	.size	_ZN7Matrix415fromScaleFactorEddd, .-_ZN7Matrix415fromScaleFactorEddd
	.align 2
	.globl	_ZN7Matrix421fromTranslationVectorERK7Vector3
	.type	_ZN7Matrix421fromTranslationVectorERK7Vector3, @function
_ZN7Matrix421fromTranslationVectorERK7Vector3:
.LFB2014:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movl	$16, %edx
	cvtss2sd	(%rsi), %xmm1
	movsd	.LC2(%rip), %xmm0
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	movsd	%xmm1, 32(%rsp)
	cvtss2sd	4(%rsi), %xmm1
	movsd	%xmm1, 64(%rsp)
	cvtss2sd	8(%rsi), %xmm1
	leaq	8(%rsp), %rsi
	movq	$0x000000000, 16(%rsp)
	movq	$0x000000000, 24(%rsp)
	movq	$0x000000000, 40(%rsp)
	movq	$0x000000000, 56(%rsp)
	movq	$0x000000000, 72(%rsp)
	movq	$0x000000000, 80(%rsp)
	movq	$0x000000000, 104(%rsp)
	movq	$0x000000000, 112(%rsp)
	movq	$0x000000000, 120(%rsp)
	movsd	%xmm0, 8(%rsp)
	movsd	%xmm0, 48(%rsp)
	movsd	%xmm0, 88(%rsp)
	movsd	%xmm1, 96(%rsp)
	movsd	%xmm0, 128(%rsp)
	call	_ZN7Matrix4C1ESt16initializer_listIdE
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	movq	%rdi, %rax
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2014:
	.size	_ZN7Matrix421fromTranslationVectorERK7Vector3, .-_ZN7Matrix421fromTranslationVectorERK7Vector3
	.section	.rodata
	.align 32
.LC0:
	.long	0
	.long	1072693248
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1072693248
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1072693248
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	1072693248
	.text
	.align 2
	.globl	_ZN7Matrix4C2Ev
	.type	_ZN7Matrix4C2Ev, @function
_ZN7Matrix4C2Ev:
.LFB2016:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, %rax
	movl	$32, %ecx
	movq	%fs:40, %rdx
	movq	%rdx, 136(%rsp)
	xorl	%edx, %edx
	leaq	8(%rsp), %rdi
	leaq	.LC0(%rip), %rsi
	movl	$16, %edx
	rep movsl
	movq	%rax, %rdi
	leaq	8(%rsp), %rsi
	call	_ZN7Matrix4C1ESt16initializer_listIdE
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L17
	call	__stack_chk_fail@PLT
.L17:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2016:
	.size	_ZN7Matrix4C2Ev, .-_ZN7Matrix4C2Ev
	.globl	_ZN7Matrix4C1Ev
	.set	_ZN7Matrix4C1Ev,_ZN7Matrix4C2Ev
	.align 2
	.globl	_ZN7Matrix413fromAxisAngleE7Vector3d
	.type	_ZN7Matrix413fromAxisAngleE7Vector3d, @function
_ZN7Matrix413fromAxisAngleE7Vector3d:
.LFB2012:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	call	_ZN7Matrix4C1Ev
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2012:
	.size	_ZN7Matrix413fromAxisAngleE7Vector3d, .-_ZN7Matrix413fromAxisAngleE7Vector3d
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB2043:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	movq	%rax, %rdi
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rdx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE2043:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.text.startup
	.type	_GLOBAL__sub_I__ZN7Matrix4ixEm, @function
_GLOBAL__sub_I__ZN7Matrix4ixEm:
.LFB2162:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movl	$32, %ecx
	movl	$16, %edx
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rdi
	leaq	.LC0(%rip), %rsi
	rep movsl
	leaq	8(%rsp), %rsi
	leaq	_ZN7Matrix48IDENTITYE(%rip), %rdi
	call	_ZN7Matrix4C1ESt16initializer_listIdE
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L24
	call	__stack_chk_fail@PLT
.L24:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2162:
	.size	_GLOBAL__sub_I__ZN7Matrix4ixEm, .-_GLOBAL__sub_I__ZN7Matrix4ixEm
	.section	.init_array
	.align 8
	.quad	_GLOBAL__sub_I__ZN7Matrix4ixEm
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.globl	_ZN7Matrix48IDENTITYE
	.bss
	.align 32
	.type	_ZN7Matrix48IDENTITYE, @object
	.size	_ZN7Matrix48IDENTITYE, 128
_ZN7Matrix48IDENTITYE:
	.zero	128
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC2:
	.long	0
	.long	1072693248
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

//
// Created by igor on 28.03.2021.
//


#include <hip/hip_runtime.h>
#include "Matrix4.cuh"

__host__ __device__ double *Matrix4::operator[](unsigned long x) {
    return data[x];
}

Matrix4::Matrix4(std::initializer_list<double> list) noexcept : data(){
    int i = 0;
    for(double d: list){
        data[0][i]=d;
        ++i;
    }
}

const Matrix4 Matrix4::IDENTITY = {1, 0, 0, 0,
                                   0, 1, 0, 0,
                                   0, 0, 1, 0,
                                   0, 0, 0, 1};

Matrix4 Matrix4::fromAxisAngle(Vector3 axis, double angle) {
    return {};
    //TODO implement
}

Matrix4 Matrix4::fromScaleFactor(double x, double y, double z) {
    return {x, 0, 0, 0,
            0, y, 0, 0,
            0, 0, z, 0,
            0, 0, 0, 1};
}

Matrix4 Matrix4::fromTranslationVector(const Vector3 &v) {
    return {1, 0, 0, v.x,
            0, 1, 0, v.y,
            0, 0, 1, v.z,
            0, 0, 0, 1};
}

Matrix4::Matrix4() :Matrix4{1, 0, 0, 0,
                            0, 1, 0, 0,
                            0, 0, 1, 0,
                            0, 0, 0, 1}{}


	.text
	.file	"Matrix4.hip"
	.globl	_ZN7Matrix4ixEm                 # -- Begin function _ZN7Matrix4ixEm
	.p2align	1, 0x90
	.type	_ZN7Matrix4ixEm,@function
_ZN7Matrix4ixEm:                        # @_ZN7Matrix4ixEm
	.cfi_startproc
# %bb.0:
	shlq	$5, %rsi
	leaq	(%rsi,%rdi), %rax
	retq
.Lfunc_end0:
	.size	_ZN7Matrix4ixEm, .Lfunc_end0-_ZN7Matrix4ixEm
	.cfi_endproc
                                        # -- End function
	.globl	_ZN7Matrix4C2ESt16initializer_listIdE # -- Begin function _ZN7Matrix4C2ESt16initializer_listIdE
	.p2align	1, 0x90
	.type	_ZN7Matrix4C2ESt16initializer_listIdE,@function
_ZN7Matrix4C2ESt16initializer_listIdE:  # @_ZN7Matrix4C2ESt16initializer_listIdE
	.cfi_startproc
# %bb.0:
	xorps	%xmm0, %xmm0
	movups	%xmm0, 112(%rdi)
	movups	%xmm0, 96(%rdi)
	movups	%xmm0, 80(%rdi)
	movups	%xmm0, 64(%rdi)
	movups	%xmm0, 48(%rdi)
	movups	%xmm0, 32(%rdi)
	movups	%xmm0, 16(%rdi)
	movups	%xmm0, (%rdi)
	testq	%rdx, %rdx
	je	.LBB1_3
# %bb.1:                                # %.lr.ph.preheader
	shlq	$3, %rdx
	xorl	%eax, %eax
.LBB1_2:                                # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movsd	(%rsi,%rax), %xmm0              # xmm0 = mem[0],zero
	movsd	%xmm0, (%rdi,%rax)
	addq	$8, %rax
	cmpq	%rax, %rdx
	jne	.LBB1_2
.LBB1_3:                                # %._crit_edge
	retq
.Lfunc_end1:
	.size	_ZN7Matrix4C2ESt16initializer_listIdE, .Lfunc_end1-_ZN7Matrix4C2ESt16initializer_listIdE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN7Matrix413fromAxisAngleE7Vector3d # -- Begin function _ZN7Matrix413fromAxisAngleE7Vector3d
	.p2align	1, 0x90
	.type	_ZN7Matrix413fromAxisAngleE7Vector3d,@function
_ZN7Matrix413fromAxisAngleE7Vector3d:   # @_ZN7Matrix413fromAxisAngleE7Vector3d
	.cfi_startproc
# %bb.0:
	movq	%rdi, %rax
	movl	$16, %ecx
	movl	$.Lconstinit.1, %esi
	rep;movsq (%rsi), %es:(%rdi)
	retq
.Lfunc_end2:
	.size	_ZN7Matrix413fromAxisAngleE7Vector3d, .Lfunc_end2-_ZN7Matrix413fromAxisAngleE7Vector3d
	.cfi_endproc
                                        # -- End function
	.globl	_ZN7Matrix415fromScaleFactorEddd # -- Begin function _ZN7Matrix415fromScaleFactorEddd
	.p2align	1, 0x90
	.type	_ZN7Matrix415fromScaleFactorEddd,@function
_ZN7Matrix415fromScaleFactorEddd:       # @_ZN7Matrix415fromScaleFactorEddd
	.cfi_startproc
# %bb.0:                                # %_ZN7Matrix4C2ESt16initializer_listIdE.exit
	movq	%rdi, %rax
	movsd	%xmm0, (%rdi)
	xorps	%xmm0, %xmm0
	movups	%xmm0, 8(%rdi)
	movups	%xmm0, 24(%rdi)
	movsd	%xmm1, 40(%rdi)
	movups	%xmm0, 48(%rdi)
	movups	%xmm0, 64(%rdi)
	movsd	%xmm2, 80(%rdi)
	movups	%xmm0, 88(%rdi)
	movups	%xmm0, 104(%rdi)
	movabsq	$4607182418800017408, %rcx      # imm = 0x3FF0000000000000
	movq	%rcx, 120(%rdi)
	retq
.Lfunc_end3:
	.size	_ZN7Matrix415fromScaleFactorEddd, .Lfunc_end3-_ZN7Matrix415fromScaleFactorEddd
	.cfi_endproc
                                        # -- End function
	.globl	_ZN7Matrix421fromTranslationVectorERK7Vector3 # -- Begin function _ZN7Matrix421fromTranslationVectorERK7Vector3
	.p2align	1, 0x90
	.type	_ZN7Matrix421fromTranslationVectorERK7Vector3,@function
_ZN7Matrix421fromTranslationVectorERK7Vector3: # @_ZN7Matrix421fromTranslationVectorERK7Vector3
	.cfi_startproc
# %bb.0:                                # %_ZN7Matrix4C2ESt16initializer_listIdE.exit
	cvtss2sd	(%rsi), %xmm0
	cvtss2sd	4(%rsi), %xmm1
	movq	%rdi, %rax
	cvtss2sd	8(%rsi), %xmm2
	movabsq	$4607182418800017408, %rcx      # imm = 0x3FF0000000000000
	movq	%rcx, (%rdi)
	xorps	%xmm3, %xmm3
	movups	%xmm3, 8(%rdi)
	movsd	%xmm0, 24(%rdi)
	xorl	%edx, %edx
	movq	%rdx, 32(%rdi)
	movq	%rcx, 40(%rdi)
	movq	%rdx, 48(%rdi)
	movsd	%xmm1, 56(%rdi)
	movups	%xmm3, 64(%rdi)
	movq	%rcx, 80(%rdi)
	movsd	%xmm2, 88(%rdi)
	movups	%xmm3, 96(%rdi)
	movq	%rdx, 112(%rdi)
	movq	%rcx, 120(%rdi)
	retq
.Lfunc_end4:
	.size	_ZN7Matrix421fromTranslationVectorERK7Vector3, .Lfunc_end4-_ZN7Matrix421fromTranslationVectorERK7Vector3
	.cfi_endproc
                                        # -- End function
	.globl	_ZN7Matrix4C2Ev                 # -- Begin function _ZN7Matrix4C2Ev
	.p2align	1, 0x90
	.type	_ZN7Matrix4C2Ev,@function
_ZN7Matrix4C2Ev:                        # @_ZN7Matrix4C2Ev
	.cfi_startproc
# %bb.0:                                # %_ZN7Matrix4C2ESt16initializer_listIdE.exit
	movl	$16, %ecx
	movl	$.Lconstinit.1, %esi
	rep;movsq (%rsi), %es:(%rdi)
	retq
.Lfunc_end5:
	.size	_ZN7Matrix4C2Ev, .Lfunc_end5-_ZN7Matrix4C2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text.startup,"ax",@progbits
	.type	_GLOBAL__sub_I_Matrix4.hip,@function # -- Begin function _GLOBAL__sub_I_Matrix4.hip
_GLOBAL__sub_I_Matrix4.hip:             # @_GLOBAL__sub_I_Matrix4.hip
	.cfi_startproc
# %bb.0:
	movl	$16, %ecx
	movl	$_ZN7Matrix48IDENTITYE, %edi
	movl	$.Lconstinit.1, %esi
	rep;movsq (%rsi), %es:(%rdi)
	retq
.Lfunc_end6:
	.size	_GLOBAL__sub_I_Matrix4.hip, .Lfunc_end6-_GLOBAL__sub_I_Matrix4.hip
	.cfi_endproc
                                        # -- End function
	.type	_ZN7Matrix48IDENTITYE,@object   # @_ZN7Matrix48IDENTITYE
	.bss
	.globl	_ZN7Matrix48IDENTITYE
	.p2align	3, 0x0
_ZN7Matrix48IDENTITYE:
	.zero	128
	.size	_ZN7Matrix48IDENTITYE, 128

	.type	.Lconstinit.1,@object           # @constinit.1
	.section	.rodata,"a",@progbits
	.p2align	3, 0x0
.Lconstinit.1:
	.quad	0x3ff0000000000000              # double 1
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x3ff0000000000000              # double 1
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x3ff0000000000000              # double 1
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x0000000000000000              # double 0
	.quad	0x3ff0000000000000              # double 1
	.size	.Lconstinit.1, 128

	.section	.init_array,"aw",@init_array
	.p2align	3, 0x0
	.quad	_GLOBAL__sub_I_Matrix4.hip
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.globl	_ZN7Matrix4C1ESt16initializer_listIdE
	.type	_ZN7Matrix4C1ESt16initializer_listIdE,@function
.set _ZN7Matrix4C1ESt16initializer_listIdE, _ZN7Matrix4C2ESt16initializer_listIdE
	.globl	_ZN7Matrix4C1Ev
	.type	_ZN7Matrix4C1Ev,@function
.set _ZN7Matrix4C1Ev, _ZN7Matrix4C2Ev
	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym _GLOBAL__sub_I_Matrix4.hip
	.addrsig_sym _ZN7Matrix48IDENTITYE
	.addrsig_sym __hip_cuid_

	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.amdgpu_metadata
---
amdhsa.kernels:  []
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
