636 lines · plain
1# RUN: llc -mtriple=amdgcn-amd-amdhsa -run-pass=none -verify-machineinstrs %s -o - | FileCheck -check-prefixes=FULL,ALL %s2# RUN: llc -mtriple=amdgcn-amd-amdhsa -run-pass=none -simplify-mir -verify-machineinstrs %s -o - | FileCheck -check-prefixes=SIMPLE,ALL %s3 4 5---6# ALL-LABEL: name: kernel07# FULL: machineFunctionInfo:8# FULL-NEXT: explicitKernArgSize: 1289# FULL-NEXT: maxKernArgAlign: 6410# FULL-NEXT: ldsSize: 204811# FULL-NEXT: gdsSize: 25612# FULL-NEXT: dynLDSAlign: 113# FULL-NEXT: isEntryFunction: true14# FULL-NEXT: isChainFunction: false15# FULL-NEXT: noSignedZerosFPMath: false16# FULL-NEXT: memoryBound: true17# FULL-NEXT: waveLimiter: true18# FULL-NEXT: hasSpilledSGPRs: false19# FULL-NEXT: hasSpilledVGPRs: false20# FULL-NEXT: numWaveDispatchSGPRs: 021# FULL-NEXT: numWaveDispatchVGPRs: 022# FULL-NEXT: scratchRSrcReg: '$sgpr8_sgpr9_sgpr10_sgpr11'23# FULL-NEXT: frameOffsetReg: '$sgpr12'24# FULL-NEXT: stackPtrOffsetReg: '$sgpr13'25# FULL-NEXT: bytesInStackArgArea: 026# FULL-NEXT: returnsVoid: true27# FULL-NEXT: argumentInfo:28# FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }29# FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }30# FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }31# FULL-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }32# FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }33# FULL-NEXT: workGroupIDX: { reg: '$sgpr6' }34# FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }35# FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }36# FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }37# FULL-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' }38# FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }39# FULL-NEXT: workItemIDX: { reg: '$vgpr0' }40# FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }41# FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }42# FULL-NEXT: psInputAddr: 043# FULL-NEXT: psInputEnable: 044# FULL-NEXT: maxMemoryClusterDWords: 845# FULL-NEXT: mode:46# FULL-NEXT: ieee: true47# FULL-NEXT: dx10-clamp: true48# FULL-NEXT: fp32-input-denormals: true49# FULL-NEXT: fp32-output-denormals: true50# FULL-NEXT: fp64-fp16-input-denormals: true51# FULL-NEXT: fp64-fp16-output-denormals: true52# FULL-NEXT: highBitsOf32BitAddress: 053# FULL-NEXT: occupancy: 854# FULL-NEXT: vgprForAGPRCopy: ''55# FULL-NEXT: sgprForEXECCopy: ''56# FULL-NEXT: longBranchReservedReg: ''57# FULL-NEXT: hasInitWholeWave: false58# FULL-NEXT: dynamicVGPRBlockSize: 059# FULL-NEXT: scratchReservedForDynamicVGPRs: 060# FULL-NEXT: numKernargPreloadSGPRs: 061# FULL-NEXT: isWholeWaveFunction: false62# FULL-NEXT: body:63 64# SIMPLE: machineFunctionInfo:65# SIMPLE-NEXT: explicitKernArgSize: 12866# SIMPLE-NEXT: maxKernArgAlign: 6467# SIMPLE-NEXT: ldsSize: 204868# SIMPLE-NEXT: gdsSize: 25669# SIMPLE-NEXT: isEntryFunction: true70# SIMPLE-NEXT: memoryBound: true71# SIMPLE-NEXT: waveLimiter: true72# SIMPLE-NEXT: scratchRSrcReg: '$sgpr8_sgpr9_sgpr10_sgpr11'73# SIMPLE-NEXT: frameOffsetReg: '$sgpr12'74# SIMPLE-NEXT: stackPtrOffsetReg: '$sgpr13'75# SIMPLE-NEXT: argumentInfo:76# SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }77# SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }78# SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }79# SIMPLE-NEXT: kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }80# SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }81# SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr6' }82# SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }83# SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }84# SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }85# SIMPLE-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' }86# SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }87# SIMPLE-NEXT: workItemIDX: { reg: '$vgpr0' }88# SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }89# SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }90# SIMPLE-NEXT: occupancy: 891# SIMPLE-NEXT: body:92name: kernel093machineFunctionInfo:94 explicitKernArgSize: 12895 maxKernArgAlign: 6496 ldsSize: 204897 gdsSize: 25698 isEntryFunction: true99 noSignedZerosFPMath: false100 memoryBound: true101 waveLimiter: true102 scratchRSrcReg: '$sgpr8_sgpr9_sgpr10_sgpr11'103 frameOffsetReg: '$sgpr12'104 stackPtrOffsetReg: '$sgpr13'105 argumentInfo:106 privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }107 kernargSegmentPtr: { reg: '$sgpr4_sgpr5' }108 workGroupIDX: { reg: '$sgpr6' }109 privateSegmentWaveByteOffset: { reg: '$sgpr7' }110 workItemIDX: { reg: '$vgpr0' }111body: |112 bb.0:113 S_ENDPGM 0114 115...116 117# FIXME: Should be able to not print section for simple118---119# ALL-LABEL: name: no_mfi120# FULL: machineFunctionInfo:121# FULL-NEXT: explicitKernArgSize: 0122# FULL-NEXT: maxKernArgAlign: 1123# FULL-NEXT: ldsSize: 0124# FULL-NEXT: gdsSize: 0125# FULL-NEXT: dynLDSAlign: 1126# FULL-NEXT: isEntryFunction: false127# FULL-NEXT: isChainFunction: false128# FULL-NEXT: noSignedZerosFPMath: false129# FULL-NEXT: memoryBound: false130# FULL-NEXT: waveLimiter: false131# FULL-NEXT: hasSpilledSGPRs: false132# FULL-NEXT: hasSpilledVGPRs: false133# FULL-NEXT: numWaveDispatchSGPRs: 0134# FULL-NEXT: numWaveDispatchVGPRs: 0135# FULL-NEXT: scratchRSrcReg: '$private_rsrc_reg'136# FULL-NEXT: frameOffsetReg: '$fp_reg'137# FULL-NEXT: stackPtrOffsetReg: '$sp_reg'138# FULL-NEXT: bytesInStackArgArea: 0139# FULL-NEXT: returnsVoid: true140# FULL-NEXT: argumentInfo:141# FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }142# FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }143# FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }144# FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }145# FULL-NEXT: workGroupIDX: { reg: '$sgpr12' }146# FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }147# FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }148# FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }149# FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }150# FULL-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }151# FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }152# FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }153# FULL-NEXT: psInputAddr: 0154# FULL-NEXT: psInputEnable: 0155# FULL-NEXT: maxMemoryClusterDWords: 8156# FULL-NEXT: mode:157# FULL-NEXT: ieee: true158# FULL-NEXT: dx10-clamp: true159# FULL-NEXT: fp32-input-denormals: true160# FULL-NEXT: fp32-output-denormals: true161# FULL-NEXT: fp64-fp16-input-denormals: true162# FULL-NEXT: fp64-fp16-output-denormals: true163# FULL-NEXT: highBitsOf32BitAddress: 0164# FULL-NEXT: occupancy: 10165# FULL-NEXT: vgprForAGPRCopy: ''166# FULL-NEXT: sgprForEXECCopy: ''167# FULL-NEXT: longBranchReservedReg: ''168# FULL-NEXT: hasInitWholeWave: false169# FULL-NEXT: dynamicVGPRBlockSize: 0170# FULL-NEXT: scratchReservedForDynamicVGPRs: 0171# FULL-NEXT: numKernargPreloadSGPRs: 0172# FULL-NEXT: isWholeWaveFunction: false173# FULL-NEXT: body:174 175# SIMPLE: machineFunctionInfo:176# SIMPLE-NEXT: maxKernArgAlign: 1177# SIMPLE-NEXT: argumentInfo:178# SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }179# SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }180# SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }181# SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }182# SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }183# SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }184# SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }185# SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }186# SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }187# SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }188# SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }189# SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }190# SIMPLE-NEXT: occupancy: 10191# SIMPLE-NEXT: body:192 193name: no_mfi194body: |195 bb.0:196 S_ENDPGM 0197 198...199 200---201# ALL-LABEL: name: empty_mfi202# FULL: machineFunctionInfo:203# FULL-NEXT: explicitKernArgSize: 0204# FULL-NEXT: maxKernArgAlign: 1205# FULL-NEXT: ldsSize: 0206# FULL-NEXT: gdsSize: 0207# FULL-NEXT: dynLDSAlign: 1208# FULL-NEXT: isEntryFunction: false209# FULL-NEXT: isChainFunction: false210# FULL-NEXT: noSignedZerosFPMath: false211# FULL-NEXT: memoryBound: false212# FULL-NEXT: waveLimiter: false213# FULL-NEXT: hasSpilledSGPRs: false214# FULL-NEXT: hasSpilledVGPRs: false215# FULL-NEXT: numWaveDispatchSGPRs: 0216# FULL-NEXT: numWaveDispatchVGPRs: 0217# FULL-NEXT: scratchRSrcReg: '$private_rsrc_reg'218# FULL-NEXT: frameOffsetReg: '$fp_reg'219# FULL-NEXT: stackPtrOffsetReg: '$sp_reg'220# FULL-NEXT: bytesInStackArgArea: 0221# FULL-NEXT: returnsVoid: true222# FULL-NEXT: argumentInfo:223# FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }224# FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }225# FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }226# FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }227# FULL-NEXT: workGroupIDX: { reg: '$sgpr12' }228# FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }229# FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }230# FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }231# FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }232# FULL-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }233# FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }234# FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }235# FULL-NEXT: psInputAddr: 0236# FULL-NEXT: psInputEnable: 0237# FULL-NEXT: maxMemoryClusterDWords: 8238# FULL-NEXT: mode:239# FULL-NEXT: ieee: true240# FULL-NEXT: dx10-clamp: true241# FULL-NEXT: fp32-input-denormals: true242# FULL-NEXT: fp32-output-denormals: true243# FULL-NEXT: fp64-fp16-input-denormals: true244# FULL-NEXT: fp64-fp16-output-denormals: true245# FULL-NEXT: highBitsOf32BitAddress: 0246# FULL-NEXT: occupancy: 10247# FULL-NEXT: vgprForAGPRCopy: ''248# FULL-NEXT: sgprForEXECCopy: ''249# FULL-NEXT: longBranchReservedReg: ''250# FULL-NEXT: hasInitWholeWave: false251# FULL-NEXT: dynamicVGPRBlockSize: 0252# FULL-NEXT: scratchReservedForDynamicVGPRs: 0253# FULL-NEXT: numKernargPreloadSGPRs: 0254# FULL-NEXT: isWholeWaveFunction: false255# FULL-NEXT: body:256 257# SIMPLE: machineFunctionInfo:258# SIMPLE-NEXT: maxKernArgAlign: 1259# SIMPLE-NEXT: argumentInfo:260# SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }261# SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }262# SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }263# SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }264# SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }265# SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }266# SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }267# SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }268# SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }269# SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }270# SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }271# SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }272# SIMPLE-NEXT: occupancy: 10273# SIMPLE-NEXT: body:274 275name: empty_mfi276machineFunctionInfo:277body: |278 bb.0:279 S_ENDPGM 0280 281...282 283---284# ALL-LABEL: name: empty_mfi_entry_func285# FULL: machineFunctionInfo:286# FULL-NEXT: explicitKernArgSize: 0287# FULL-NEXT: maxKernArgAlign: 1288# FULL-NEXT: ldsSize: 0289# FULL-NEXT: gdsSize: 0290# FULL-NEXT: dynLDSAlign: 1291# FULL-NEXT: isEntryFunction: true292# FULL-NEXT: isChainFunction: false293# FULL-NEXT: noSignedZerosFPMath: false294# FULL-NEXT: memoryBound: false295# FULL-NEXT: waveLimiter: false296# FULL-NEXT: hasSpilledSGPRs: false297# FULL-NEXT: hasSpilledVGPRs: false298# FULL-NEXT: numWaveDispatchSGPRs: 0299# FULL-NEXT: numWaveDispatchVGPRs: 0300# FULL-NEXT: scratchRSrcReg: '$private_rsrc_reg'301# FULL-NEXT: frameOffsetReg: '$fp_reg'302# FULL-NEXT: stackPtrOffsetReg: '$sp_reg'303# FULL-NEXT: bytesInStackArgArea: 0304# FULL-NEXT: returnsVoid: true305# FULL-NEXT: argumentInfo:306# FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }307# FULL-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }308# FULL-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }309# FULL-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }310# FULL-NEXT: workGroupIDX: { reg: '$sgpr12' }311# FULL-NEXT: workGroupIDY: { reg: '$sgpr13' }312# FULL-NEXT: workGroupIDZ: { reg: '$sgpr14' }313# FULL-NEXT: LDSKernelId: { reg: '$sgpr15' }314# FULL-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }315# FULL-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }316# FULL-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }317# FULL-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }318# FULL-NEXT: psInputAddr: 0319# FULL-NEXT: psInputEnable: 0320# FULL-NEXT: maxMemoryClusterDWords: 8321# FULL-NEXT: mode:322# FULL-NEXT: ieee: true323# FULL-NEXT: dx10-clamp: true324# FULL-NEXT: fp32-input-denormals: true325# FULL-NEXT: fp32-output-denormals: true326# FULL-NEXT: fp64-fp16-input-denormals: true327# FULL-NEXT: fp64-fp16-output-denormals: true328# FULL-NEXT: highBitsOf32BitAddress: 0329# FULL-NEXT: occupancy: 10330# FULL-NEXT: vgprForAGPRCopy: ''331# FULL-NEXT: sgprForEXECCopy: ''332# FULL-NEXT: longBranchReservedReg: ''333# FULL-NEXT: hasInitWholeWave: false334# FULL-NEXT: dynamicVGPRBlockSize: 0335# FULL-NEXT: scratchReservedForDynamicVGPRs: 0336# FULL-NEXT: numKernargPreloadSGPRs: 0337# FULL-NEXT: isWholeWaveFunction: false338# FULL-NEXT: body:339 340# SIMPLE: machineFunctionInfo:341# SIMPLE-NEXT: maxKernArgAlign: 1342# SIMPLE-NEXT: isEntryFunction: true343# SIMPLE-NEXT: argumentInfo:344# SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }345# SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }346# SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }347# SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }348# SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }349# SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }350# SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }351# SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }352# SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }353# SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }354# SIMPLE-NEXT: workItemIDY: { reg: '$vgpr31', mask: 1047552 }355# SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }356# SIMPLE-NEXT: occupancy: 10357# SIMPLE-NEXT: body:358 359name: empty_mfi_entry_func360machineFunctionInfo:361 isEntryFunction: true362body: |363 bb.0:364 S_ENDPGM 0365 366...367 368---369# ALL-LABEL: name: default_regs_mfi370 371# FULL: scratchRSrcReg: '$private_rsrc_reg'372# FULL-NEXT: frameOffsetReg: '$fp_reg'373# FULL-NEXT: stackPtrOffsetReg: '$sp_reg'374 375# SIMPLE-NOT: scratchRSrcReg376# SIMPLE-NOT:: stackPtrOffsetReg377name: default_regs_mfi378machineFunctionInfo:379 scratchRSrcReg: '$private_rsrc_reg'380 381body: |382 bb.0:383 S_ENDPGM 0384 385...386 387---388# ALL-LABEL: name: fake_stack_arginfo389 390# FULL: argumentInfo:391# FULL: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }392# FULL: flatScratchInit: { offset: 4 }393# FULL: workItemIDY: { reg: '$vgpr0', mask: 65280 }394 395# SIMPLE: argumentInfo:396# SIMPLE-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' }397# SIMPLE-NEXT: dispatchPtr: { reg: '$sgpr4_sgpr5' }398# SIMPLE-NEXT: queuePtr: { reg: '$sgpr6_sgpr7' }399# SIMPLE-NEXT: dispatchID: { reg: '$sgpr10_sgpr11' }400# SIMPLE-NEXT: flatScratchInit: { offset: 4 }401# SIMPLE-NEXT: workGroupIDX: { reg: '$sgpr12' }402# SIMPLE-NEXT: workGroupIDY: { reg: '$sgpr13' }403# SIMPLE-NEXT: workGroupIDZ: { reg: '$sgpr14' }404# SIMPLE-NEXT: LDSKernelId: { reg: '$sgpr15' }405# SIMPLE-NEXT: implicitArgPtr: { reg: '$sgpr8_sgpr9' }406# SIMPLE-NEXT: workItemIDX: { reg: '$vgpr31', mask: 1023 }407# SIMPLE-NEXT: workItemIDY: { reg: '$vgpr0', mask: 65280 }408# SIMPLE-NEXT: workItemIDZ: { reg: '$vgpr31', mask: 1072693248 }409name: fake_stack_arginfo410machineFunctionInfo:411 argumentInfo:412 flatScratchInit: { offset: 4 }413 workItemIDY: { reg: '$vgpr0' , mask: 0xff00 }414 415body: |416 bb.0:417 S_ENDPGM 0418 419...420 421---422# ALL-LABEL: name: parse_mode423# ALL: mode:424# ALL-NEXT: ieee: false425# ALL-NEXT: dx10-clamp: false426# ALL-NEXT: fp32-input-denormals: false427# ALL-NEXT: fp32-output-denormals: false428# ALL-NEXT: fp64-fp16-input-denormals: false429# ALL-NEXT: fp64-fp16-output-denormals: false430 431name: parse_mode432machineFunctionInfo:433 mode:434 ieee: false435 dx10-clamp: false436 fp32-input-denormals: false437 fp32-output-denormals: false438 fp64-fp16-input-denormals: false439 fp64-fp16-output-denormals: false440 441body: |442 bb.0:443 S_ENDPGM 0444 445...446 447 448---449# ALL-LABEL: name: parse_spilled_regs450# ALL: machineFunctionInfo:451# ALL: hasSpilledSGPRs: true452# ALL-NEXT: hasSpilledVGPRs: true453 454name: parse_spilled_regs455machineFunctionInfo:456 hasSpilledSGPRs: true457 hasSpilledVGPRs: true458 459body: |460 bb.0:461 S_ENDPGM 0462 463...464 465---466# ALL-LABEL: name: dyn_lds_with_alignment467 468# FULL: ldsSize: 0469# FULL-NEXT: gdsSize: 0470# FULL-NEXT: dynLDSAlign: 8471 472# SIMPLE: dynLDSAlign: 8473name: dyn_lds_with_alignment474machineFunctionInfo:475 dynLDSAlign: 8476 477body: |478 bb.0:479 S_ENDPGM 0480 481...482 483---484# ALL-LABEL: name: occupancy_10485# ALL: occupancy: 10486name: occupancy_10487machineFunctionInfo:488 occupancy: 10489 490body: |491 bb.0:492 S_ENDPGM 0493 494...495 496---497# ALL-LABEL: name: occupancy_3498# ALL: occupancy: 3499name: occupancy_3500machineFunctionInfo:501 occupancy: 3502 503body: |504 bb.0:505 S_ENDPGM 0506 507...508 509---510# ALL-LABEL: name: scavenge_fi511# ALL: scavengeFI: '%stack.0'512name: scavenge_fi513stack:514 - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }515machineFunctionInfo:516 scavengeFI: '%stack.0'517 518body: |519 bb.0:520 S_ENDPGM 0521 522...523 524---525# ALL-LABEL: name: bytes_in_stack_arg_area526# ALL: bytesInStackArgArea: 444527name: bytes_in_stack_arg_area528machineFunctionInfo:529 bytesInStackArgArea: 444530body: |531 bb.0:532 SI_RETURN533 534...535 536---537# ALL-LABEL: name: returns_void_true538# FULL: returnsVoid: true539# SIMPLE-NOT: returnsVoid540name: returns_void_true541machineFunctionInfo:542 returnsVoid: true543body: |544 bb.0:545 SI_RETURN546 547...548---549# ALL-LABEL: name: returns_void_false550# ALL: returnsVoid: false551name: returns_void_false552machineFunctionInfo:553 returnsVoid: false554body: |555 bb.0:556 SI_RETURN557 558...559 560---561# ALL-LABEL: name: vgpr_for_agpr_copy562# ALL: vgprForAGPRCopy: '$vgpr2'563name: vgpr_for_agpr_copy564machineFunctionInfo:565 vgprForAGPRCopy: '$vgpr2'566body: |567 bb.0:568 SI_RETURN569 570...571 572---573# ALL-LABEL: name: vgpr_for_agpr_copy_noreg574# FULL: vgprForAGPRCopy: ''575# SIMPLE-NOT: vgprForAGPRCopy576name: vgpr_for_agpr_copy_noreg577machineFunctionInfo:578 vgprForAGPRCopy: '$noreg'579body: |580 bb.0:581 SI_RETURN582 583...584 585---586# ALL-LABEL: name: sgpr_for_exec_copy587# ALL: sgprForEXECCopy: '$sgpr2_sgpr3'588name: sgpr_for_exec_copy589machineFunctionInfo:590 sgprForEXECCopy: '$sgpr2_sgpr3'591body: |592 bb.0:593 SI_RETURN594 595...596 597---598# ALL-LABEL: name: sgpr_for_exec_copy_noreg599# FULL: sgprForEXECCopy: ''600# SIMPLE-NOT: sgprForEXECCopy601name: sgpr_for_exec_copy_noreg602machineFunctionInfo:603 sgprForEXECCopy: '$noreg'604body: |605 bb.0:606 SI_RETURN607 608...609---610name: vregs611# FULL: registers:612# FULL-NEXT: - { id: 0, class: vgpr_32, preferred-register: '$vgpr1', flags: [ WWM_REG ] }613# FULL-NEXT: - { id: 1, class: sgpr_64, preferred-register: '$sgpr0_sgpr1', flags: [ ] }614# FULL-NEXT: - { id: 2, class: sgpr_64, preferred-register: '', flags: [ ] }615registers:616 - { id: 0, class: vgpr_32, preferred-register: $vgpr1, flags: [ WWM_REG ]}617 - { id: 1, class: sgpr_64, preferred-register: $sgpr0_sgpr1 }618 - { id: 2, class: sgpr_64, flags: [ ] }619body: |620 bb.0:621 %2:sgpr_64 = COPY %1622 %1:sgpr_64 = COPY %0623...624 625---626# ALL-LABEL: name: max_memory_cluster_dwords627# ALL: maxMemoryClusterDWords: 16628name: max_memory_cluster_dwords629machineFunctionInfo:630 maxMemoryClusterDWords: 16631body: |632 bb.0:633 SI_RETURN634 635...636