469 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 62; RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti < %s | FileCheck -check-prefix=GCN %s3 4define amdgpu_kernel void @kernel_ieee_mode_default() #0 {5; GCN-LABEL: kernel_ieee_mode_default:6; GCN: .amd_kernel_code_t7; GCN-NEXT: amd_code_version_major = 18; GCN-NEXT: amd_code_version_minor = 29; GCN-NEXT: amd_machine_kind = 110; GCN-NEXT: amd_machine_version_major = 611; GCN-NEXT: amd_machine_version_minor = 012; GCN-NEXT: amd_machine_version_stepping = 013; GCN-NEXT: kernel_code_entry_byte_offset = 25614; GCN-NEXT: kernel_code_prefetch_byte_size = 015; GCN-NEXT: granulated_workitem_vgpr_count = 016; GCN-NEXT: granulated_wavefront_sgpr_count = 017; GCN-NEXT: priority = 018; GCN-NEXT: float_mode = 24019; GCN-NEXT: priv = 020; GCN-NEXT: enable_dx10_clamp = 121; GCN-NEXT: debug_mode = 022; GCN-NEXT: enable_ieee_mode = 123; GCN-NEXT: enable_wgp_mode = 024; GCN-NEXT: enable_mem_ordered = 025; GCN-NEXT: enable_fwd_progress = 026; GCN-NEXT: enable_sgpr_private_segment_wave_byte_offset = 027; GCN-NEXT: user_sgpr_count = 1228; GCN-NEXT: enable_trap_handler = 029; GCN-NEXT: enable_sgpr_workgroup_id_x = 130; GCN-NEXT: enable_sgpr_workgroup_id_y = 131; GCN-NEXT: enable_sgpr_workgroup_id_z = 132; GCN-NEXT: enable_sgpr_workgroup_info = 033; GCN-NEXT: enable_vgpr_workitem_id = 234; GCN-NEXT: enable_exception_msb = 035; GCN-NEXT: granulated_lds_size = 036; GCN-NEXT: enable_exception = 037; GCN-NEXT: enable_sgpr_private_segment_buffer = 138; GCN-NEXT: enable_sgpr_dispatch_ptr = 139; GCN-NEXT: enable_sgpr_queue_ptr = 140; GCN-NEXT: enable_sgpr_kernarg_segment_ptr = 141; GCN-NEXT: enable_sgpr_dispatch_id = 142; GCN-NEXT: enable_sgpr_flat_scratch_init = 043; GCN-NEXT: enable_sgpr_private_segment_size = 044; GCN-NEXT: enable_sgpr_grid_workgroup_count_x = 045; GCN-NEXT: enable_sgpr_grid_workgroup_count_y = 046; GCN-NEXT: enable_sgpr_grid_workgroup_count_z = 047; GCN-NEXT: enable_wavefront_size32 = 048; GCN-NEXT: enable_ordered_append_gds = 049; GCN-NEXT: private_element_size = 150; GCN-NEXT: is_ptr64 = 151; GCN-NEXT: is_dynamic_callstack = 052; GCN-NEXT: is_debug_enabled = 053; GCN-NEXT: is_xnack_enabled = 054; GCN-NEXT: workitem_private_segment_byte_size = 055; GCN-NEXT: workgroup_group_segment_byte_size = 056; GCN-NEXT: gds_segment_byte_size = 057; GCN-NEXT: kernarg_segment_byte_size = 1658; GCN-NEXT: workgroup_fbarrier_count = 059; GCN-NEXT: wavefront_sgpr_count = 460; GCN-NEXT: workitem_vgpr_count = 261; GCN-NEXT: reserved_vgpr_first = 062; GCN-NEXT: reserved_vgpr_count = 063; GCN-NEXT: reserved_sgpr_first = 064; GCN-NEXT: reserved_sgpr_count = 065; GCN-NEXT: debug_wavefront_private_segment_offset_sgpr = 066; GCN-NEXT: debug_private_segment_buffer_sgpr = 067; GCN-NEXT: kernarg_segment_alignment = 468; GCN-NEXT: group_segment_alignment = 469; GCN-NEXT: private_segment_alignment = 470; GCN-NEXT: wavefront_size = 671; GCN-NEXT: call_convention = -172; GCN-NEXT: runtime_loader_kernel_symbol = 073; GCN-NEXT: .end_amd_kernel_code_t74; GCN-NEXT: ; %bb.0:75; GCN-NEXT: s_mov_b32 s3, 0xf00076; GCN-NEXT: s_mov_b32 s2, -177; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc78; GCN-NEXT: s_waitcnt vmcnt(0)79; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc80; GCN-NEXT: s_waitcnt vmcnt(0)81; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v082; GCN-NEXT: v_mul_f32_e32 v1, 1.0, v183; GCN-NEXT: v_min_f32_e32 v0, v0, v184; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 085; GCN-NEXT: s_waitcnt vmcnt(0)86; GCN-NEXT: s_endpgm87 %val0 = load volatile float, ptr addrspace(1) poison88 %val1 = load volatile float, ptr addrspace(1) poison89 %min = call float @llvm.minnum.f32(float %val0, float %val1)90 store volatile float %min, ptr addrspace(1) poison91 ret void92}93 94define amdgpu_kernel void @kernel_ieee_mode_on() #1 {95; GCN-LABEL: kernel_ieee_mode_on:96; GCN: .amd_kernel_code_t97; GCN-NEXT: amd_code_version_major = 198; GCN-NEXT: amd_code_version_minor = 299; GCN-NEXT: amd_machine_kind = 1100; GCN-NEXT: amd_machine_version_major = 6101; GCN-NEXT: amd_machine_version_minor = 0102; GCN-NEXT: amd_machine_version_stepping = 0103; GCN-NEXT: kernel_code_entry_byte_offset = 256104; GCN-NEXT: kernel_code_prefetch_byte_size = 0105; GCN-NEXT: granulated_workitem_vgpr_count = 0106; GCN-NEXT: granulated_wavefront_sgpr_count = 0107; GCN-NEXT: priority = 0108; GCN-NEXT: float_mode = 240109; GCN-NEXT: priv = 0110; GCN-NEXT: enable_dx10_clamp = 1111; GCN-NEXT: debug_mode = 0112; GCN-NEXT: enable_ieee_mode = 1113; GCN-NEXT: enable_wgp_mode = 0114; GCN-NEXT: enable_mem_ordered = 0115; GCN-NEXT: enable_fwd_progress = 0116; GCN-NEXT: enable_sgpr_private_segment_wave_byte_offset = 0117; GCN-NEXT: user_sgpr_count = 12118; GCN-NEXT: enable_trap_handler = 0119; GCN-NEXT: enable_sgpr_workgroup_id_x = 1120; GCN-NEXT: enable_sgpr_workgroup_id_y = 1121; GCN-NEXT: enable_sgpr_workgroup_id_z = 1122; GCN-NEXT: enable_sgpr_workgroup_info = 0123; GCN-NEXT: enable_vgpr_workitem_id = 2124; GCN-NEXT: enable_exception_msb = 0125; GCN-NEXT: granulated_lds_size = 0126; GCN-NEXT: enable_exception = 0127; GCN-NEXT: enable_sgpr_private_segment_buffer = 1128; GCN-NEXT: enable_sgpr_dispatch_ptr = 1129; GCN-NEXT: enable_sgpr_queue_ptr = 1130; GCN-NEXT: enable_sgpr_kernarg_segment_ptr = 1131; GCN-NEXT: enable_sgpr_dispatch_id = 1132; GCN-NEXT: enable_sgpr_flat_scratch_init = 0133; GCN-NEXT: enable_sgpr_private_segment_size = 0134; GCN-NEXT: enable_sgpr_grid_workgroup_count_x = 0135; GCN-NEXT: enable_sgpr_grid_workgroup_count_y = 0136; GCN-NEXT: enable_sgpr_grid_workgroup_count_z = 0137; GCN-NEXT: enable_wavefront_size32 = 0138; GCN-NEXT: enable_ordered_append_gds = 0139; GCN-NEXT: private_element_size = 1140; GCN-NEXT: is_ptr64 = 1141; GCN-NEXT: is_dynamic_callstack = 0142; GCN-NEXT: is_debug_enabled = 0143; GCN-NEXT: is_xnack_enabled = 0144; GCN-NEXT: workitem_private_segment_byte_size = 0145; GCN-NEXT: workgroup_group_segment_byte_size = 0146; GCN-NEXT: gds_segment_byte_size = 0147; GCN-NEXT: kernarg_segment_byte_size = 16148; GCN-NEXT: workgroup_fbarrier_count = 0149; GCN-NEXT: wavefront_sgpr_count = 4150; GCN-NEXT: workitem_vgpr_count = 2151; GCN-NEXT: reserved_vgpr_first = 0152; GCN-NEXT: reserved_vgpr_count = 0153; GCN-NEXT: reserved_sgpr_first = 0154; GCN-NEXT: reserved_sgpr_count = 0155; GCN-NEXT: debug_wavefront_private_segment_offset_sgpr = 0156; GCN-NEXT: debug_private_segment_buffer_sgpr = 0157; GCN-NEXT: kernarg_segment_alignment = 4158; GCN-NEXT: group_segment_alignment = 4159; GCN-NEXT: private_segment_alignment = 4160; GCN-NEXT: wavefront_size = 6161; GCN-NEXT: call_convention = -1162; GCN-NEXT: runtime_loader_kernel_symbol = 0163; GCN-NEXT: .end_amd_kernel_code_t164; GCN-NEXT: ; %bb.0:165; GCN-NEXT: s_mov_b32 s3, 0xf000166; GCN-NEXT: s_mov_b32 s2, -1167; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc168; GCN-NEXT: s_waitcnt vmcnt(0)169; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc170; GCN-NEXT: s_waitcnt vmcnt(0)171; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0172; GCN-NEXT: v_mul_f32_e32 v1, 1.0, v1173; GCN-NEXT: v_min_f32_e32 v0, v0, v1174; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0175; GCN-NEXT: s_waitcnt vmcnt(0)176; GCN-NEXT: s_endpgm177 %val0 = load volatile float, ptr addrspace(1) poison178 %val1 = load volatile float, ptr addrspace(1) poison179 %min = call float @llvm.minnum.f32(float %val0, float %val1)180 store volatile float %min, ptr addrspace(1) poison181 ret void182}183 184define amdgpu_kernel void @kernel_ieee_mode_off() #2 {185; GCN-LABEL: kernel_ieee_mode_off:186; GCN: .amd_kernel_code_t187; GCN-NEXT: amd_code_version_major = 1188; GCN-NEXT: amd_code_version_minor = 2189; GCN-NEXT: amd_machine_kind = 1190; GCN-NEXT: amd_machine_version_major = 6191; GCN-NEXT: amd_machine_version_minor = 0192; GCN-NEXT: amd_machine_version_stepping = 0193; GCN-NEXT: kernel_code_entry_byte_offset = 256194; GCN-NEXT: kernel_code_prefetch_byte_size = 0195; GCN-NEXT: granulated_workitem_vgpr_count = 0196; GCN-NEXT: granulated_wavefront_sgpr_count = 0197; GCN-NEXT: priority = 0198; GCN-NEXT: float_mode = 240199; GCN-NEXT: priv = 0200; GCN-NEXT: enable_dx10_clamp = 1201; GCN-NEXT: debug_mode = 0202; GCN-NEXT: enable_ieee_mode = 0203; GCN-NEXT: enable_wgp_mode = 0204; GCN-NEXT: enable_mem_ordered = 0205; GCN-NEXT: enable_fwd_progress = 0206; GCN-NEXT: enable_sgpr_private_segment_wave_byte_offset = 0207; GCN-NEXT: user_sgpr_count = 12208; GCN-NEXT: enable_trap_handler = 0209; GCN-NEXT: enable_sgpr_workgroup_id_x = 1210; GCN-NEXT: enable_sgpr_workgroup_id_y = 1211; GCN-NEXT: enable_sgpr_workgroup_id_z = 1212; GCN-NEXT: enable_sgpr_workgroup_info = 0213; GCN-NEXT: enable_vgpr_workitem_id = 2214; GCN-NEXT: enable_exception_msb = 0215; GCN-NEXT: granulated_lds_size = 0216; GCN-NEXT: enable_exception = 0217; GCN-NEXT: enable_sgpr_private_segment_buffer = 1218; GCN-NEXT: enable_sgpr_dispatch_ptr = 1219; GCN-NEXT: enable_sgpr_queue_ptr = 1220; GCN-NEXT: enable_sgpr_kernarg_segment_ptr = 1221; GCN-NEXT: enable_sgpr_dispatch_id = 1222; GCN-NEXT: enable_sgpr_flat_scratch_init = 0223; GCN-NEXT: enable_sgpr_private_segment_size = 0224; GCN-NEXT: enable_sgpr_grid_workgroup_count_x = 0225; GCN-NEXT: enable_sgpr_grid_workgroup_count_y = 0226; GCN-NEXT: enable_sgpr_grid_workgroup_count_z = 0227; GCN-NEXT: enable_wavefront_size32 = 0228; GCN-NEXT: enable_ordered_append_gds = 0229; GCN-NEXT: private_element_size = 1230; GCN-NEXT: is_ptr64 = 1231; GCN-NEXT: is_dynamic_callstack = 0232; GCN-NEXT: is_debug_enabled = 0233; GCN-NEXT: is_xnack_enabled = 0234; GCN-NEXT: workitem_private_segment_byte_size = 0235; GCN-NEXT: workgroup_group_segment_byte_size = 0236; GCN-NEXT: gds_segment_byte_size = 0237; GCN-NEXT: kernarg_segment_byte_size = 16238; GCN-NEXT: workgroup_fbarrier_count = 0239; GCN-NEXT: wavefront_sgpr_count = 4240; GCN-NEXT: workitem_vgpr_count = 2241; GCN-NEXT: reserved_vgpr_first = 0242; GCN-NEXT: reserved_vgpr_count = 0243; GCN-NEXT: reserved_sgpr_first = 0244; GCN-NEXT: reserved_sgpr_count = 0245; GCN-NEXT: debug_wavefront_private_segment_offset_sgpr = 0246; GCN-NEXT: debug_private_segment_buffer_sgpr = 0247; GCN-NEXT: kernarg_segment_alignment = 4248; GCN-NEXT: group_segment_alignment = 4249; GCN-NEXT: private_segment_alignment = 4250; GCN-NEXT: wavefront_size = 6251; GCN-NEXT: call_convention = -1252; GCN-NEXT: runtime_loader_kernel_symbol = 0253; GCN-NEXT: .end_amd_kernel_code_t254; GCN-NEXT: ; %bb.0:255; GCN-NEXT: s_mov_b32 s3, 0xf000256; GCN-NEXT: s_mov_b32 s2, -1257; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc258; GCN-NEXT: s_waitcnt vmcnt(0)259; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc260; GCN-NEXT: s_waitcnt vmcnt(0)261; GCN-NEXT: v_min_f32_e32 v0, v0, v1262; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0263; GCN-NEXT: s_waitcnt vmcnt(0)264; GCN-NEXT: s_endpgm265 %val0 = load volatile float, ptr addrspace(1) poison266 %val1 = load volatile float, ptr addrspace(1) poison267 %min = call float @llvm.minnum.f32(float %val0, float %val1)268 store volatile float %min, ptr addrspace(1) poison269 ret void270}271 272define void @func_ieee_mode_default() #0 {273; GCN-LABEL: func_ieee_mode_default:274; GCN: ; %bb.0:275; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)276; GCN-NEXT: s_mov_b32 s7, 0xf000277; GCN-NEXT: s_mov_b32 s6, -1278; GCN-NEXT: buffer_load_dword v0, off, s[4:7], 0 glc279; GCN-NEXT: s_waitcnt vmcnt(0)280; GCN-NEXT: buffer_load_dword v1, off, s[4:7], 0 glc281; GCN-NEXT: s_waitcnt vmcnt(0)282; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0283; GCN-NEXT: v_mul_f32_e32 v1, 1.0, v1284; GCN-NEXT: v_min_f32_e32 v0, v0, v1285; GCN-NEXT: buffer_store_dword v0, off, s[4:7], 0286; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0)287; GCN-NEXT: s_setpc_b64 s[30:31]288 %val0 = load volatile float, ptr addrspace(1) poison289 %val1 = load volatile float, ptr addrspace(1) poison290 %min = call float @llvm.minnum.f32(float %val0, float %val1)291 store volatile float %min, ptr addrspace(1) poison292 ret void293}294 295define void @func_ieee_mode_on() #1 {296; GCN-LABEL: func_ieee_mode_on:297; GCN: ; %bb.0:298; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)299; GCN-NEXT: s_mov_b32 s7, 0xf000300; GCN-NEXT: s_mov_b32 s6, -1301; GCN-NEXT: buffer_load_dword v0, off, s[4:7], 0 glc302; GCN-NEXT: s_waitcnt vmcnt(0)303; GCN-NEXT: buffer_load_dword v1, off, s[4:7], 0 glc304; GCN-NEXT: s_waitcnt vmcnt(0)305; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0306; GCN-NEXT: v_mul_f32_e32 v1, 1.0, v1307; GCN-NEXT: v_min_f32_e32 v0, v0, v1308; GCN-NEXT: buffer_store_dword v0, off, s[4:7], 0309; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0)310; GCN-NEXT: s_setpc_b64 s[30:31]311 %val0 = load volatile float, ptr addrspace(1) poison312 %val1 = load volatile float, ptr addrspace(1) poison313 %min = call float @llvm.minnum.f32(float %val0, float %val1)314 store volatile float %min, ptr addrspace(1) poison315 ret void316}317 318define void @func_ieee_mode_off() #2 {319; GCN-LABEL: func_ieee_mode_off:320; GCN: ; %bb.0:321; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)322; GCN-NEXT: s_mov_b32 s7, 0xf000323; GCN-NEXT: s_mov_b32 s6, -1324; GCN-NEXT: buffer_load_dword v0, off, s[4:7], 0 glc325; GCN-NEXT: s_waitcnt vmcnt(0)326; GCN-NEXT: buffer_load_dword v1, off, s[4:7], 0 glc327; GCN-NEXT: s_waitcnt vmcnt(0)328; GCN-NEXT: v_min_f32_e32 v0, v0, v1329; GCN-NEXT: buffer_store_dword v0, off, s[4:7], 0330; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0)331; GCN-NEXT: s_setpc_b64 s[30:31]332 %val0 = load volatile float, ptr addrspace(1) poison333 %val1 = load volatile float, ptr addrspace(1) poison334 %min = call float @llvm.minnum.f32(float %val0, float %val1)335 store volatile float %min, ptr addrspace(1) poison336 ret void337}338 339define amdgpu_cs void @cs_ieee_mode_default() #0 {340; GCN-LABEL: cs_ieee_mode_default:341; GCN: ; %bb.0:342; GCN-NEXT: s_mov_b32 s3, 0xf000343; GCN-NEXT: s_mov_b32 s2, -1344; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc345; GCN-NEXT: s_waitcnt vmcnt(0)346; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc347; GCN-NEXT: s_waitcnt vmcnt(0)348; GCN-NEXT: v_min_f32_e32 v0, v0, v1349; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0350; GCN-NEXT: s_waitcnt vmcnt(0)351; GCN-NEXT: s_endpgm352 %val0 = load volatile float, ptr addrspace(1) poison353 %val1 = load volatile float, ptr addrspace(1) poison354 %min = call float @llvm.minnum.f32(float %val0, float %val1)355 store volatile float %min, ptr addrspace(1) poison356 ret void357}358 359define amdgpu_cs void @cs_ieee_mode_on() #1 {360; GCN-LABEL: cs_ieee_mode_on:361; GCN: ; %bb.0:362; GCN-NEXT: s_mov_b32 s3, 0xf000363; GCN-NEXT: s_mov_b32 s2, -1364; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc365; GCN-NEXT: s_waitcnt vmcnt(0)366; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc367; GCN-NEXT: s_waitcnt vmcnt(0)368; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0369; GCN-NEXT: v_mul_f32_e32 v1, 1.0, v1370; GCN-NEXT: v_min_f32_e32 v0, v0, v1371; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0372; GCN-NEXT: s_waitcnt vmcnt(0)373; GCN-NEXT: s_endpgm374 %val0 = load volatile float, ptr addrspace(1) poison375 %val1 = load volatile float, ptr addrspace(1) poison376 %min = call float @llvm.minnum.f32(float %val0, float %val1)377 store volatile float %min, ptr addrspace(1) poison378 ret void379}380 381define amdgpu_cs void @cs_ieee_mode_off() #2 {382; GCN-LABEL: cs_ieee_mode_off:383; GCN: ; %bb.0:384; GCN-NEXT: s_mov_b32 s3, 0xf000385; GCN-NEXT: s_mov_b32 s2, -1386; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc387; GCN-NEXT: s_waitcnt vmcnt(0)388; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc389; GCN-NEXT: s_waitcnt vmcnt(0)390; GCN-NEXT: v_min_f32_e32 v0, v0, v1391; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0392; GCN-NEXT: s_waitcnt vmcnt(0)393; GCN-NEXT: s_endpgm394 %val0 = load volatile float, ptr addrspace(1) poison395 %val1 = load volatile float, ptr addrspace(1) poison396 %min = call float @llvm.minnum.f32(float %val0, float %val1)397 store volatile float %min, ptr addrspace(1) poison398 ret void399}400 401define amdgpu_ps void @ps_ieee_mode_default() #0 {402; GCN-LABEL: ps_ieee_mode_default:403; GCN: ; %bb.0:404; GCN-NEXT: s_mov_b32 s3, 0xf000405; GCN-NEXT: s_mov_b32 s2, -1406; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc407; GCN-NEXT: s_waitcnt vmcnt(0)408; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc409; GCN-NEXT: s_waitcnt vmcnt(0)410; GCN-NEXT: v_min_f32_e32 v0, v0, v1411; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0412; GCN-NEXT: s_waitcnt vmcnt(0)413; GCN-NEXT: s_endpgm414 %val0 = load volatile float, ptr addrspace(1) poison415 %val1 = load volatile float, ptr addrspace(1) poison416 %min = call float @llvm.minnum.f32(float %val0, float %val1)417 store volatile float %min, ptr addrspace(1) poison418 ret void419}420 421define amdgpu_ps void @ps_ieee_mode_on() #1 {422; GCN-LABEL: ps_ieee_mode_on:423; GCN: ; %bb.0:424; GCN-NEXT: s_mov_b32 s3, 0xf000425; GCN-NEXT: s_mov_b32 s2, -1426; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc427; GCN-NEXT: s_waitcnt vmcnt(0)428; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc429; GCN-NEXT: s_waitcnt vmcnt(0)430; GCN-NEXT: v_mul_f32_e32 v0, 1.0, v0431; GCN-NEXT: v_mul_f32_e32 v1, 1.0, v1432; GCN-NEXT: v_min_f32_e32 v0, v0, v1433; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0434; GCN-NEXT: s_waitcnt vmcnt(0)435; GCN-NEXT: s_endpgm436 %val0 = load volatile float, ptr addrspace(1) poison437 %val1 = load volatile float, ptr addrspace(1) poison438 %min = call float @llvm.minnum.f32(float %val0, float %val1)439 store volatile float %min, ptr addrspace(1) poison440 ret void441}442 443define amdgpu_ps void @ps_ieee_mode_off() #2 {444; GCN-LABEL: ps_ieee_mode_off:445; GCN: ; %bb.0:446; GCN-NEXT: s_mov_b32 s3, 0xf000447; GCN-NEXT: s_mov_b32 s2, -1448; GCN-NEXT: buffer_load_dword v0, off, s[0:3], 0 glc449; GCN-NEXT: s_waitcnt vmcnt(0)450; GCN-NEXT: buffer_load_dword v1, off, s[0:3], 0 glc451; GCN-NEXT: s_waitcnt vmcnt(0)452; GCN-NEXT: v_min_f32_e32 v0, v0, v1453; GCN-NEXT: buffer_store_dword v0, off, s[0:3], 0454; GCN-NEXT: s_waitcnt vmcnt(0)455; GCN-NEXT: s_endpgm456 %val0 = load volatile float, ptr addrspace(1) poison457 %val1 = load volatile float, ptr addrspace(1) poison458 %min = call float @llvm.minnum.f32(float %val0, float %val1)459 store volatile float %min, ptr addrspace(1) poison460 ret void461}462 463declare float @llvm.minnum.f32(float, float) #3464 465attributes #0 = { nounwind }466attributes #1 = { nounwind "amdgpu-ieee"="true" }467attributes #2 = { nounwind "amdgpu-ieee"="false" }468attributes #3 = { nounwind readnone speculatable }469