//
// Generated by LLVM NVPTX Back-End
//

.version 8.8
.target sm_89
.address_size 64

	// .globl	_rms_norm_scale_shift_kernel // -- Begin function _rms_norm_scale_shift_kernel
.extern .shared .align 16 .b8 global_smem[];
.global .align 1 .b8 _$_str[11] = {95, 95, 67, 85, 68, 65, 95, 70, 84, 90};
                                        // @_rms_norm_scale_shift_kernel
.visible .entry _rms_norm_scale_shift_kernel(
	.param .u64 .ptr .global .align 1 _rms_norm_scale_shift_kernel_param_0,
	.param .u64 .ptr .global .align 1 _rms_norm_scale_shift_kernel_param_1,
	.param .u64 .ptr .global .align 1 _rms_norm_scale_shift_kernel_param_2,
	.param .u64 .ptr .global .align 1 _rms_norm_scale_shift_kernel_param_3,
	.param .u32 _rms_norm_scale_shift_kernel_param_4,
	.param .u32 _rms_norm_scale_shift_kernel_param_5,
	.param .u64 .ptr .global .align 1 _rms_norm_scale_shift_kernel_param_6,
	.param .u64 .ptr .global .align 1 _rms_norm_scale_shift_kernel_param_7
)
.reqntid 256
{
	.reg .pred 	%p<2>;
	.reg .b16 	%rs<25>;
	.reg .b32 	%r<111>;
	.reg .b64 	%rd<10>;
	.loc	1 1188 0                        // ltxv_nodes.py:1188:0
$L__func_begin0:
	.loc	1 1188 0                        // ltxv_nodes.py:1188:0

// %bb.0:                               // %__nv_rsqrtf.exit
	ld.param.b64 	%rd5, [_rms_norm_scale_shift_kernel_param_0];
	ld.param.b64 	%rd6, [_rms_norm_scale_shift_kernel_param_1];
$L__tmp0:
	.loc	1 1196 15                       // ltxv_nodes.py:1196:15
	mov.u32 	%r20, %ctaid.x;
	ld.param.b64 	%rd7, [_rms_norm_scale_shift_kernel_param_2];
	.loc	1 1197 16                       // ltxv_nodes.py:1197:16
	mov.u32 	%r21, %tid.x;
	shl.b32 	%r22, %r21, 3;
	ld.param.b64 	%rd8, [_rms_norm_scale_shift_kernel_param_3];
	and.b32 	%r23, %r22, 2040;
	ld.param.b32 	%r24, [_rms_norm_scale_shift_kernel_param_4];
	.loc	1 1198 16                       // ltxv_nodes.py:1198:16
	setp.lt.s32 	%p1, %r23, %r24;
	.loc	1 1199 15                       // ltxv_nodes.py:1199:15
	mad.lo.s32 	%r25, %r24, %r20, %r23;
	.loc	1 1201 21                       // ltxv_nodes.py:1201:21
	mul.wide.s32 	%rd9, %r25, 2;
	add.s64 	%rd1, %rd5, %rd9;
	mov.b32 	%r5, 0;
	.loc	1 1201 13                       // ltxv_nodes.py:1201:13
	// begin inline asm
	.loc	1 1201 13                       // ltxv_nodes.py:1201:13
	mov.u32 %r1, %r5;
	.loc	1 1202 13                       // ltxv_nodes.py:1202:13
	mov.u32 %r2, %r5;
	.loc	1 1203 13                       // ltxv_nodes.py:1203:13
	mov.u32 %r3, %r5;
	.loc	1 1204 13                       // ltxv_nodes.py:1204:13
	mov.u32 %r4, %r5;
	@%p1 ld.global.v4.b32 { %r1, %r2, %r3, %r4 }, [ %rd1 + 0 ];

	// end inline asm
	mov.b32 	{%rs1, %rs2}, %r1;
	cvt.f32.bf16 	%r26, %rs1;
	cvt.f32.bf16 	%r27, %rs2;
	mov.b32 	{%rs3, %rs4}, %r2;
	cvt.f32.bf16 	%r28, %rs3;
	cvt.f32.bf16 	%r29, %rs4;
	mov.b32 	{%rs5, %rs6}, %r3;
	cvt.f32.bf16 	%r30, %rs5;
	cvt.f32.bf16 	%r31, %rs6;
	mov.b32 	{%rs7, %rs8}, %r4;
	cvt.f32.bf16 	%r32, %rs7;
	cvt.f32.bf16 	%r33, %rs8;
	.loc	1 1203 26                       // ltxv_nodes.py:1203:26
	mul.f32 	%r34, %r29, %r29;
	mul.f32 	%r35, %r31, %r31;
	mul.f32 	%r36, %r33, %r33;
$L__tmp1:
	.loc	1 1203 19                       // ltxv_nodes.py:1203:19
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	fma.rn.f32 	%r37, %r30, %r30, %r35;
	fma.rn.f32 	%r38, %r32, %r32, %r36;
$L__tmp2:
	.loc	1 1203 26                       // ltxv_nodes.py:1203:26
	mul.f32 	%r39, %r27, %r27;
	add.f32 	%r40, %r37, %r38;
	fma.rn.f32 	%r41, %r28, %r28, %r34;
$L__tmp3:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	fma.rn.f32 	%r42, %r26, %r26, %r39;
	add.f32 	%r43, %r42, %r41;
	add.f32 	%r44, %r43, %r40;
$L__tmp4:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shfl.sync.bfly.b32 	%r45, %r44, 16, 31, -1;
$L__tmp5:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r46, %r44, %r45;
$L__tmp6:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shfl.sync.bfly.b32 	%r47, %r46, 8, 31, -1;
$L__tmp7:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r48, %r46, %r47;
$L__tmp8:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shfl.sync.bfly.b32 	%r49, %r48, 4, 31, -1;
$L__tmp9:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r50, %r48, %r49;
$L__tmp10:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shfl.sync.bfly.b32 	%r51, %r50, 2, 31, -1;
$L__tmp11:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r52, %r50, %r51;
$L__tmp12:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shfl.sync.bfly.b32 	%r53, %r52, 1, 31, -1;
$L__tmp13:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r7, %r52, %r53;
$L__tmp14:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shr.u32 	%r54, %r21, 3;
	and.b32 	%r55, %r54, 28;
	mov.b32 	%r56, global_smem;
	add.s32 	%r6, %r56, %r55;
	// begin inline asm
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	st.shared::cta.b32 [ %r6 + 0 ], %r7;

	// end inline asm
	bar.sync 	0;
	shl.b32 	%r57, %r21, 2;
	and.b32 	%r58, %r57, 28;
	add.s32 	%r59, %r56, %r58;
	ld.shared.b32 	%r60, [%r59];
	shfl.sync.bfly.b32 	%r61, %r60, 4, 31, -1;
$L__tmp15:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r62, %r60, %r61;
$L__tmp16:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shfl.sync.bfly.b32 	%r63, %r62, 2, 31, -1;
$L__tmp17:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r64, %r62, %r63;
$L__tmp18:
	.loc	2 293 12, function_name $L__info_string0, inlined_at 1 1203 19 // standard.py:293:12
	shfl.sync.bfly.b32 	%r65, %r64, 1, 31, -1;
$L__tmp19:
	.loc	2 263 12, function_name $L__info_string0, inlined_at 2 293 12 // standard.py:263:12
	add.f32 	%r66, %r64, %r65;
$L__tmp20:
	.loc	1 1203 19                       // ltxv_nodes.py:1203:19
	cvt.rn.f32.s32 	%r67, %r24;
	div.full.f32 	%r68, %r66, %r67;
	.loc	1 1204 30                       // ltxv_nodes.py:1204:30
	add.f32 	%r69, %r68, 0f358637BD;
	.loc	1 1204 16                       // ltxv_nodes.py:1204:16
	rsqrt.approx.ftz.f32 	%r70, %r69;
	.loc	1 1205 18                       // ltxv_nodes.py:1205:18
	mul.f32 	%r71, %r70, %r27;
	mul.f32 	%r72, %r70, %r26;
	mul.f32 	%r73, %r70, %r29;
	mul.f32 	%r74, %r70, %r28;
	mul.f32 	%r75, %r70, %r31;
	mul.f32 	%r76, %r70, %r30;
	mul.f32 	%r77, %r70, %r33;
	mul.f32 	%r78, %r70, %r32;
	.loc	1 1213 25                       // ltxv_nodes.py:1213:25
	add.s64 	%rd2, %rd7, %rd9;
	.loc	1 1213 17                       // ltxv_nodes.py:1213:17
	// begin inline asm
	.loc	1 1213 17                       // ltxv_nodes.py:1213:17
	mov.u32 %r8, %r5;
	.loc	1 1214 17                       // ltxv_nodes.py:1214:17
	mov.u32 %r9, %r5;
	.loc	1 1215 17                       // ltxv_nodes.py:1215:17
	mov.u32 %r10, %r5;
	.loc	1 1216 17                       // ltxv_nodes.py:1216:17
	mov.u32 %r11, %r5;
	@%p1 ld.global.v4.b32 { %r8, %r9, %r10, %r11 }, [ %rd2 + 0 ];

	// end inline asm
	.loc	1 1214 25                       // ltxv_nodes.py:1214:25
	add.s64 	%rd3, %rd8, %rd9;
	.loc	1 1214 17                       // ltxv_nodes.py:1214:17
	// begin inline asm
	.loc	1 1214 17                       // ltxv_nodes.py:1214:17
	mov.u32 %r12, %r5;
	.loc	1 1215 17                       // ltxv_nodes.py:1215:17
	mov.u32 %r13, %r5;
	.loc	1 1216 17                       // ltxv_nodes.py:1216:17
	mov.u32 %r14, %r5;
	.loc	1 1217 17                       // ltxv_nodes.py:1217:17
	mov.u32 %r15, %r5;
	@%p1 ld.global.v4.b32 { %r12, %r13, %r14, %r15 }, [ %rd3 + 0 ];

	// end inline asm
	.loc	1 1218 22                       // ltxv_nodes.py:1218:22
	add.s64 	%rd4, %rd6, %rd9;
	.loc	1 1213 17                       // ltxv_nodes.py:1213:17
	mov.b32 	{%rs9, %rs10}, %r8;
	cvt.f32.bf16 	%r79, %rs9;
	cvt.f32.bf16 	%r80, %rs10;
	.loc	1 1214 17                       // ltxv_nodes.py:1214:17
	mov.b32 	{%rs11, %rs12}, %r12;
	cvt.f32.bf16 	%r81, %rs12;
	cvt.f32.bf16 	%r82, %rs11;
	.loc	1 1215 25                       // ltxv_nodes.py:1215:25
	add.f32 	%r83, %r80, 0f3F800000;
	add.f32 	%r84, %r79, 0f3F800000;
	.loc	1 1215 15                       // ltxv_nodes.py:1215:15
	fma.rn.f32 	%r85, %r72, %r84, %r82;
	fma.rn.f32 	%r86, %r71, %r83, %r81;
	.loc	1 1218 37                       // ltxv_nodes.py:1218:37
	cvt.rn.bf16x2.f32 	%r16, %r86, %r85;
	.loc	1 1213 17                       // ltxv_nodes.py:1213:17
	mov.b32 	{%rs13, %rs14}, %r9;
	cvt.f32.bf16 	%r87, %rs13;
	cvt.f32.bf16 	%r88, %rs14;
	.loc	1 1214 17                       // ltxv_nodes.py:1214:17
	mov.b32 	{%rs15, %rs16}, %r13;
	cvt.f32.bf16 	%r89, %rs16;
	cvt.f32.bf16 	%r90, %rs15;
	.loc	1 1215 25                       // ltxv_nodes.py:1215:25
	add.f32 	%r91, %r88, 0f3F800000;
	add.f32 	%r92, %r87, 0f3F800000;
	.loc	1 1215 15                       // ltxv_nodes.py:1215:15
	fma.rn.f32 	%r93, %r74, %r92, %r90;
	fma.rn.f32 	%r94, %r73, %r91, %r89;
	.loc	1 1218 37                       // ltxv_nodes.py:1218:37
	cvt.rn.bf16x2.f32 	%r17, %r94, %r93;
	.loc	1 1213 17                       // ltxv_nodes.py:1213:17
	mov.b32 	{%rs17, %rs18}, %r10;
	cvt.f32.bf16 	%r95, %rs17;
	cvt.f32.bf16 	%r96, %rs18;
	.loc	1 1214 17                       // ltxv_nodes.py:1214:17
	mov.b32 	{%rs19, %rs20}, %r14;
	cvt.f32.bf16 	%r97, %rs20;
	cvt.f32.bf16 	%r98, %rs19;
	.loc	1 1215 25                       // ltxv_nodes.py:1215:25
	add.f32 	%r99, %r96, 0f3F800000;
	add.f32 	%r100, %r95, 0f3F800000;
	.loc	1 1215 15                       // ltxv_nodes.py:1215:15
	fma.rn.f32 	%r101, %r76, %r100, %r98;
	fma.rn.f32 	%r102, %r75, %r99, %r97;
	.loc	1 1218 37                       // ltxv_nodes.py:1218:37
	cvt.rn.bf16x2.f32 	%r18, %r102, %r101;
	.loc	1 1213 17                       // ltxv_nodes.py:1213:17
	mov.b32 	{%rs21, %rs22}, %r11;
	cvt.f32.bf16 	%r103, %rs21;
	cvt.f32.bf16 	%r104, %rs22;
	.loc	1 1214 17                       // ltxv_nodes.py:1214:17
	mov.b32 	{%rs23, %rs24}, %r15;
	cvt.f32.bf16 	%r105, %rs24;
	cvt.f32.bf16 	%r106, %rs23;
	.loc	1 1215 25                       // ltxv_nodes.py:1215:25
	add.f32 	%r107, %r104, 0f3F800000;
	add.f32 	%r108, %r103, 0f3F800000;
	.loc	1 1215 15                       // ltxv_nodes.py:1215:15
	fma.rn.f32 	%r109, %r78, %r108, %r106;
	fma.rn.f32 	%r110, %r77, %r107, %r105;
	.loc	1 1218 37                       // ltxv_nodes.py:1218:37
	cvt.rn.bf16x2.f32 	%r19, %r110, %r109;
	.loc	1 1218 13                       // ltxv_nodes.py:1218:13
	// begin inline asm
	@%p1 st.global.v4.b32 [ %rd4 + 0 ], { %r16, %r17, %r18, %r19 };

	// end inline asm
	.loc	1 1188 5                        // ltxv_nodes.py:1188:5
	ret;
$L__tmp21:
$L__func_end0:
                                        // -- End function
}
	.file	1 "D:\\Comfy\\App\\ComfyUI_windows_portable\\ComfyUI\\custom_nodes\\comfyui-kjnodes\\nodes\\ltxv_nodes.py"
	.file	2 "D:\\Comfy\\App\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\language\\standard.py"
	.section	.debug_abbrev
	{
.b8 1                                   // Abbreviation Code
.b8 17                                  // DW_TAG_compile_unit
.b8 1                                   // DW_CHILDREN_yes
.b8 37                                  // DW_AT_producer
.b8 8                                   // DW_FORM_string
.b8 19                                  // DW_AT_language
.b8 5                                   // DW_FORM_data2
.b8 3                                   // DW_AT_name
.b8 8                                   // DW_FORM_string
.b8 16                                  // DW_AT_stmt_list
.b8 6                                   // DW_FORM_data4
.b8 27                                  // DW_AT_comp_dir
.b8 8                                   // DW_FORM_string
.b8 0                                   // EOM(1)
.b8 0                                   // EOM(2)
.b8 2                                   // Abbreviation Code
.b8 46                                  // DW_TAG_subprogram
.b8 0                                   // DW_CHILDREN_no
.b8 3                                   // DW_AT_name
.b8 8                                   // DW_FORM_string
.b8 32                                  // DW_AT_inline
.b8 11                                  // DW_FORM_data1
.b8 0                                   // EOM(1)
.b8 0                                   // EOM(2)
.b8 3                                   // Abbreviation Code
.b8 46                                  // DW_TAG_subprogram
.b8 1                                   // DW_CHILDREN_yes
.b8 17                                  // DW_AT_low_pc
.b8 1                                   // DW_FORM_addr
.b8 18                                  // DW_AT_high_pc
.b8 1                                   // DW_FORM_addr
.b8 49                                  // DW_AT_abstract_origin
.b8 19                                  // DW_FORM_ref4
.b8 0                                   // EOM(1)
.b8 0                                   // EOM(2)
.b8 4                                   // Abbreviation Code
.b8 29                                  // DW_TAG_inlined_subroutine
.b8 1                                   // DW_CHILDREN_yes
.b8 49                                  // DW_AT_abstract_origin
.b8 19                                  // DW_FORM_ref4
.b8 17                                  // DW_AT_low_pc
.b8 1                                   // DW_FORM_addr
.b8 18                                  // DW_AT_high_pc
.b8 1                                   // DW_FORM_addr
.b8 88                                  // DW_AT_call_file
.b8 11                                  // DW_FORM_data1
.b8 89                                  // DW_AT_call_line
.b8 5                                   // DW_FORM_data2
.b8 87                                  // DW_AT_call_column
.b8 11                                  // DW_FORM_data1
.b8 0                                   // EOM(1)
.b8 0                                   // EOM(2)
.b8 5                                   // Abbreviation Code
.b8 29                                  // DW_TAG_inlined_subroutine
.b8 0                                   // DW_CHILDREN_no
.b8 49                                  // DW_AT_abstract_origin
.b8 19                                  // DW_FORM_ref4
.b8 17                                  // DW_AT_low_pc
.b8 1                                   // DW_FORM_addr
.b8 18                                  // DW_AT_high_pc
.b8 1                                   // DW_FORM_addr
.b8 88                                  // DW_AT_call_file
.b8 11                                  // DW_FORM_data1
.b8 89                                  // DW_AT_call_line
.b8 5                                   // DW_FORM_data2
.b8 87                                  // DW_AT_call_column
.b8 11                                  // DW_FORM_data1
.b8 0                                   // EOM(1)
.b8 0                                   // EOM(2)
.b8 0                                   // EOM(3)
	}
	.section	.debug_info
	{
.b32 221                                // Length of Unit
.b8 2                                   // DWARF version number
.b8 0
.b32 .debug_abbrev                      // Offset Into Abbrev. Section
.b8 8                                   // Address Size (in bytes)
.b8 1                                   // Abbrev [1] 0xb:0xd6 DW_TAG_compile_unit
.b8 116                                 // DW_AT_producer
.b8 114
.b8 105
.b8 116
.b8 111
.b8 110
.b8 0
.b8 2                                   // DW_AT_language
.b8 0
.b8 108                                 // DW_AT_name
.b8 116
.b8 120
.b8 118
.b8 95
.b8 110
.b8 111
.b8 100
.b8 101
.b8 115
.b8 46
.b8 112
.b8 121
.b8 0
.b32 .debug_line                        // DW_AT_stmt_list
.b8 68                                  // DW_AT_comp_dir
.b8 58
.b8 92
.b8 67
.b8 111
.b8 109
.b8 102
.b8 121
.b8 92
.b8 65
.b8 112
.b8 112
.b8 92
.b8 67
.b8 111
.b8 109
.b8 102
.b8 121
.b8 85
.b8 73
.b8 95
.b8 119
.b8 105
.b8 110
.b8 100
.b8 111
.b8 119
.b8 115
.b8 95
.b8 112
.b8 111
.b8 114
.b8 116
.b8 97
.b8 98
.b8 108
.b8 101
.b8 92
.b8 67
.b8 111
.b8 109
.b8 102
.b8 121
.b8 85
.b8 73
.b8 92
.b8 99
.b8 117
.b8 115
.b8 116
.b8 111
.b8 109
.b8 95
.b8 110
.b8 111
.b8 100
.b8 101
.b8 115
.b8 92
.b8 99
.b8 111
.b8 109
.b8 102
.b8 121
.b8 117
.b8 105
.b8 45
.b8 107
.b8 106
.b8 110
.b8 111
.b8 100
.b8 101
.b8 115
.b8 92
.b8 110
.b8 111
.b8 100
.b8 101
.b8 115
.b8 0
.b8 2                                   // Abbrev [2] 0x78:0x1f DW_TAG_subprogram
.b8 95                                  // DW_AT_name
.b8 114
.b8 109
.b8 115
.b8 95
.b8 110
.b8 111
.b8 114
.b8 109
.b8 95
.b8 115
.b8 99
.b8 97
.b8 108
.b8 101
.b8 95
.b8 115
.b8 104
.b8 105
.b8 102
.b8 116
.b8 95
.b8 107
.b8 101
.b8 114
.b8 110
.b8 101
.b8 108
.b8 0
.b8 1                                   // DW_AT_inline
.b8 3                                   // Abbrev [3] 0x97:0x49 DW_TAG_subprogram
.b64 $L__func_begin0                    // DW_AT_low_pc
.b64 $L__func_end0                      // DW_AT_high_pc
.b32 120                                // DW_AT_abstract_origin
.b8 4                                   // Abbrev [4] 0xac:0x33 DW_TAG_inlined_subroutine
.b32 120                                // DW_AT_abstract_origin
.b64 $L__tmp1                           // DW_AT_low_pc
.b64 $L__tmp20                          // DW_AT_high_pc
.b8 1                                   // DW_AT_call_file
.b8 179                                 // DW_AT_call_line
.b8 4
.b8 19                                  // DW_AT_call_column
.b8 5                                   // Abbrev [5] 0xc5:0x19 DW_TAG_inlined_subroutine
.b32 120                                // DW_AT_abstract_origin
.b64 $L__tmp1                           // DW_AT_low_pc
.b64 $L__tmp20                          // DW_AT_high_pc
.b8 2                                   // DW_AT_call_file
.b8 37                                  // DW_AT_call_line
.b8 1
.b8 12                                  // DW_AT_call_column
.b8 0                                   // End Of Children Mark
.b8 0                                   // End Of Children Mark
.b8 0                                   // End Of Children Mark
	}
	.section	.debug_str
	{
$L__info_string0:
.b8 95                                  // string offset=0 ; _rms_norm_scale_shift_kernel
.b8 114
.b8 109
.b8 115
.b8 95
.b8 110
.b8 111
.b8 114
.b8 109
.b8 95
.b8 115
.b8 99
.b8 97
.b8 108
.b8 101
.b8 95
.b8 115
.b8 104
.b8 105
.b8 102
.b8 116
.b8 95
.b8 107
.b8 101
.b8 114
.b8 110
.b8 101
.b8 108
.b8 0
	}
	.section	.debug_macinfo	{	}
