diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-07-10 16:09:26 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-07-10 16:09:26 +0000 |
| commit | 58426a3707dcae151134b56688135da32f83e5bf (patch) | |
| tree | f848362ed10c51e91bda6e41990794dbd808159a /llvm/test/CodeGen/MIR | |
| parent | c5f92bd67beabfc2c8d20af9a799a8c9c8f7ed95 (diff) | |
| download | bcm5719-llvm-58426a3707dcae151134b56688135da32f83e5bf.tar.gz bcm5719-llvm-58426a3707dcae151134b56688135da32f83e5bf.zip | |
AMDGPU: Serialize mode from MachineFunctionInfo
llvm-svn: 365653
Diffstat (limited to 'llvm/test/CodeGen/MIR')
| -rw-r--r-- | llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir | 29 | ||||
| -rw-r--r-- | llvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll | 40 |
2 files changed, 69 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir b/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir index 73d0855f612..4523af65645 100644 --- a/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir +++ b/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info-no-ir.mir @@ -22,6 +22,9 @@ # FULL-NEXT: workGroupIDX: { reg: '$sgpr6' } # FULL-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' } # FULL-NEXT: workItemIDX: { reg: '$vgpr0' } +# FULL-NEXT: mode: +# FULL-NEXT: ieee: true +# FULL-NEXT: dx10-clamp: true # FULL-NEXT: body: # SIMPLE: machineFunctionInfo: @@ -85,6 +88,9 @@ body: | # FULL-NEXT: argumentInfo: # FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' } # FULL-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr33' } +# FULL-NEXT: mode: +# FULL-NEXT: ieee: true +# FULL-NEXT: dx10-clamp: true # FULL-NEXT: body: # SIMPLE: machineFunctionInfo: @@ -117,6 +123,9 @@ body: | # FULL-NEXT: argumentInfo: # FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' } # FULL-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr33' } +# FULL-NEXT: mode: +# FULL-NEXT: ieee: true +# FULL-NEXT: dx10-clamp: true # FULL-NEXT: body: # SIMPLE: machineFunctionInfo: @@ -150,6 +159,9 @@ body: | # FULL-NEXT: argumentInfo: # FULL-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' } # FULL-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr33' } +# FULL-NEXT: mode: +# FULL-NEXT: ieee: true +# FULL-NEXT: dx10-clamp: true # FULL-NEXT: body: # SIMPLE: machineFunctionInfo: @@ -214,3 +226,20 @@ body: | S_ENDPGM 0 ... + +--- +# ALL-LABEL: name: parse_mode +# ALL: mode: +# ALL-NEXT: ieee: false +# ALL-NEXT: dx10-clamp: false +name: parse_mode +machineFunctionInfo: + mode: + ieee: false + dx10-clamp: false + +body: | + bb.0: + S_ENDPGM 0 + +... diff --git a/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll b/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll index 0fdbce5208d..79d3d82cc84 100644 --- a/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll +++ b/llvm/test/CodeGen/MIR/AMDGPU/machine-function-info.ll @@ -25,6 +25,9 @@ ; CHECK-NEXT: workGroupIDX: { reg: '$sgpr6' } ; CHECK-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr7' } ; CHECK-NEXT: workItemIDX: { reg: '$vgpr0' } +; CHECK-NEXT: mode: +; CHECK-NEXT: ieee: true +; CHECK-NEXT: dx10-clamp: true ; CHECK-NEXT: body: define amdgpu_kernel void @kernel(i32 %arg0, i64 %arg1, <16 x i32> %arg2) { %gep = getelementptr inbounds [512 x float], [512 x float] addrspace(3)* @lds, i32 0, i32 %arg0 @@ -48,6 +51,9 @@ define amdgpu_kernel void @kernel(i32 %arg0, i64 %arg1, <16 x i32> %arg2) { ; CHECK-NEXT: argumentInfo: ; CHECK-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr3' } ; CHECK-NEXT: implicitBufferPtr: { reg: '$sgpr0_sgpr1' } +; CHECK-NEXT: mode: +; CHECK-NEXT: ieee: false +; CHECK-NEXT: dx10-clamp: true ; CHECK-NEXT: body: define amdgpu_ps void @ps_shader(i32 %arg0, i32 inreg %arg1) { ret void @@ -69,6 +75,9 @@ define amdgpu_ps void @ps_shader(i32 %arg0, i32 inreg %arg1) { ; CHECK-NEXT: argumentInfo: ; CHECK-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' } ; CHECK-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr33' } +; CHECK-NEXT: mode: +; CHECK-NEXT: ieee: true +; CHECK-NEXT: dx10-clamp: true ; CHECK-NEXT: body: define void @function() { ret void @@ -90,9 +99,40 @@ define void @function() { ; CHECK-NEXT: argumentInfo: ; CHECK-NEXT: privateSegmentBuffer: { reg: '$sgpr0_sgpr1_sgpr2_sgpr3' } ; CHECK-NEXT: privateSegmentWaveByteOffset: { reg: '$sgpr33' } +; CHECK-NEXT: mode: +; CHECK-NEXT: ieee: true +; CHECK-NEXT: dx10-clamp: true ; CHECK-NEXT: body: define void @function_nsz() #0 { ret void } +; CHECK-LABEL: {{^}}name: function_dx10_clamp_off +; CHECK: mode: +; CHECK-NEXT: ieee: true +; CHECK-NEXT: dx10-clamp: false +define void @function_dx10_clamp_off() #1 { + ret void +} + +; CHECK-LABEL: {{^}}name: function_ieee_off +; CHECK: mode: +; CHECK-NEXT: ieee: false +; CHECK-NEXT: dx10-clamp: true +define void @function_ieee_off() #2 { + ret void +} + +; CHECK-LABEL: {{^}}name: function_ieee_off_dx10_clamp_off +; CHECK: mode: +; CHECK-NEXT: ieee: false +; CHECK-NEXT: dx10-clamp: false +define void @function_ieee_off_dx10_clamp_off() #3 { + ret void +} + attributes #0 = { "no-signed-zeros-fp-math" = "true" } + +attributes #1 = { "amdgpu-dx10-clamp" = "false" } +attributes #2 = { "amdgpu-ieee" = "false" } +attributes #3 = { "amdgpu-dx10-clamp" = "false" "amdgpu-ieee" = "false" } |

