Skip to content

Add FABS to canCreateUndefOrPoison #149440

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 18, 2025
Merged

Conversation

Shoreshen
Copy link
Contributor

FABS will not create undef/poison, add it into canCreateUndefOrPoison return false

@Shoreshen Shoreshen requested a review from Copilot July 18, 2025 02:36
@llvmbot llvmbot added backend:AMDGPU llvm:SelectionDAG SelectionDAGISel as well labels Jul 18, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds the FABS instruction to the list of operations that cannot create undef or poison values in the canCreateUndefOrPoison function. The floating-point absolute value operation (FABS) cannot produce undef or poison values since it only clears the sign bit of floating-point numbers.

  • Adds ISD::FABS to the canCreateUndefOrPoison function to return false
  • Adds comprehensive test cases to verify the behavior across different GPU generations and instruction selection modes

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Adds FABS case to canCreateUndefOrPoison function
llvm/test/CodeGen/AMDGPU/freeze.ll Adds test functions demonstrating FABS optimization behavior
Comments suppressed due to low confidence (3)

llvm/test/CodeGen/AMDGPU/freeze.ll:10453

  • The GFX6-GISEL test case shows redundant v_and_b32_e32 instructions (lines 14722-14726) that duplicate the same operations on v0-v3. This suggests the optimization for eliminating redundant FABS operations after freeze is not working correctly for the GlobalISel path.
;

llvm/test/CodeGen/AMDGPU/freeze.ll:10454

  • Similar to GFX6-GISEL, the GFX7-GISEL test case shows duplicated v_and_b32_e32 instructions (lines 14743-14747) indicating the same optimization issue exists across multiple GPU generations in the GlobalISel path.
; GFX7-GISEL

llvm/test/CodeGen/AMDGPU/freeze.ll:10453

  • The GFX8-GISEL test case also shows the same pattern of redundant FABS operations (lines 14766-14769), confirming this optimization issue is consistent across the GlobalISel instruction selection path.
;

@llvmbot
Copy link
Member

llvmbot commented Jul 18, 2025

@llvm/pr-subscribers-llvm-selectiondag

@llvm/pr-subscribers-backend-amdgpu

Author: None (Shoreshen)

Changes

FABS will not create undef/poison, add it into canCreateUndefOrPoison return false


Full diff: https://github.com/llvm/llvm-project/pull/149440.diff

2 Files Affected:

  • (modified) llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (+1)
  • (modified) llvm/test/CodeGen/AMDGPU/freeze.ll (+238-2)
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 682d93d0abf3f..56c8bb441ddf8 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -5569,6 +5569,7 @@ bool SelectionDAG::canCreateUndefOrPoison(SDValue Op, const APInt &DemandedElts,
   case ISD::BUILD_VECTOR:
   case ISD::BUILD_PAIR:
   case ISD::SPLAT_VECTOR:
+  case ISD::FABS:
     return false;
 
   case ISD::ABS:
diff --git a/llvm/test/CodeGen/AMDGPU/freeze.ll b/llvm/test/CodeGen/AMDGPU/freeze.ll
index ac438062ae208..0476bc47e2366 100644
--- a/llvm/test/CodeGen/AMDGPU/freeze.ll
+++ b/llvm/test/CodeGen/AMDGPU/freeze.ll
@@ -14592,5 +14592,241 @@ define void @freeze_v4i1_vcc(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
   store <4 x i1> %freeze, ptr addrspace(1) %ptrb
   ret void
 }
-;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
-; GFX8-SDAG: {{.*}}
+
+define double @tgt(float %a, double %b, double %c) {
+; GFX6-SDAG-LABEL: tgt:
+; GFX6-SDAG:       ; %bb.0:
+; GFX6-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX6-SDAG-NEXT:    v_mov_b32_e32 v5, v0
+; GFX6-SDAG-NEXT:    v_add_f64 v[0:1], |v[4:5]|, v[1:2]
+; GFX6-SDAG-NEXT:    v_add_f64 v[2:3], |v[4:5]|, v[3:4]
+; GFX6-SDAG-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX6-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX6-GISEL-LABEL: tgt:
+; GFX6-GISEL:       ; %bb.0:
+; GFX6-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v5, 0x7fffffff, v0
+; GFX6-GISEL-NEXT:    v_add_f64 v[0:1], v[4:5], v[1:2]
+; GFX6-GISEL-NEXT:    v_add_f64 v[2:3], v[4:5], v[3:4]
+; GFX6-GISEL-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX6-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX7-SDAG-LABEL: tgt:
+; GFX7-SDAG:       ; %bb.0:
+; GFX7-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX7-SDAG-NEXT:    v_mov_b32_e32 v5, v0
+; GFX7-SDAG-NEXT:    v_add_f64 v[0:1], |v[4:5]|, v[1:2]
+; GFX7-SDAG-NEXT:    v_add_f64 v[2:3], |v[4:5]|, v[3:4]
+; GFX7-SDAG-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX7-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX7-GISEL-LABEL: tgt:
+; GFX7-GISEL:       ; %bb.0:
+; GFX7-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v5, 0x7fffffff, v0
+; GFX7-GISEL-NEXT:    v_add_f64 v[0:1], v[4:5], v[1:2]
+; GFX7-GISEL-NEXT:    v_add_f64 v[2:3], v[4:5], v[3:4]
+; GFX7-GISEL-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX7-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX8-SDAG-LABEL: tgt:
+; GFX8-SDAG:       ; %bb.0:
+; GFX8-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX8-SDAG-NEXT:    v_mov_b32_e32 v5, v0
+; GFX8-SDAG-NEXT:    v_add_f64 v[0:1], |v[4:5]|, v[1:2]
+; GFX8-SDAG-NEXT:    v_add_f64 v[2:3], |v[4:5]|, v[3:4]
+; GFX8-SDAG-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX8-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX8-GISEL-LABEL: tgt:
+; GFX8-GISEL:       ; %bb.0:
+; GFX8-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v5, 0x7fffffff, v0
+; GFX8-GISEL-NEXT:    v_add_f64 v[0:1], v[4:5], v[1:2]
+; GFX8-GISEL-NEXT:    v_add_f64 v[2:3], v[4:5], v[3:4]
+; GFX8-GISEL-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX8-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX9-GISEL-LABEL: tgt:
+; GFX9-GISEL:       ; %bb.0:
+; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v5, 0x7fffffff, v0
+; GFX9-GISEL-NEXT:    v_add_f64 v[0:1], v[4:5], v[1:2]
+; GFX9-GISEL-NEXT:    v_add_f64 v[2:3], v[4:5], v[3:4]
+; GFX9-GISEL-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX10-SDAG-LABEL: tgt:
+; GFX10-SDAG:       ; %bb.0:
+; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-SDAG-NEXT:    v_mov_b32_e32 v5, v0
+; GFX10-SDAG-NEXT:    v_add_f64 v[0:1], |v[4:5]|, v[1:2]
+; GFX10-SDAG-NEXT:    v_add_f64 v[2:3], |v[4:5]|, v[3:4]
+; GFX10-SDAG-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX10-GISEL-LABEL: tgt:
+; GFX10-GISEL:       ; %bb.0:
+; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v5, 0x7fffffff, v0
+; GFX10-GISEL-NEXT:    v_add_f64 v[0:1], v[4:5], v[1:2]
+; GFX10-GISEL-NEXT:    v_add_f64 v[2:3], v[4:5], v[3:4]
+; GFX10-GISEL-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX11-SDAG-LABEL: tgt:
+; GFX11-SDAG:       ; %bb.0:
+; GFX11-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX11-SDAG-NEXT:    v_mov_b32_e32 v5, v0
+; GFX11-SDAG-NEXT:    v_add_f64 v[0:1], |v[4:5]|, v[1:2]
+; GFX11-SDAG-NEXT:    v_add_f64 v[2:3], |v[4:5]|, v[3:4]
+; GFX11-SDAG-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX11-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX11-GISEL-LABEL: tgt:
+; GFX11-GISEL:       ; %bb.0:
+; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v5, 0x7fffffff, v0
+; GFX11-GISEL-NEXT:    v_add_f64 v[0:1], v[4:5], v[1:2]
+; GFX11-GISEL-NEXT:    v_add_f64 v[2:3], v[4:5], v[3:4]
+; GFX11-GISEL-NEXT:    v_add_f64 v[0:1], v[0:1], v[2:3]
+; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]
+  %pv = insertelement <2 x float> poison, float %a, i32 1
+  %d = bitcast <2 x float> %pv to double
+  %r = call double @llvm.fabs.f64(double %d)
+  %fr = freeze double %r
+  %add1 = fadd double %fr, %b
+  %add2 = fadd double %fr, %c
+  %add = fadd double %add1, %add2
+  ret double %add
+}
+
+define <4 x float> @src(<4 x float> %A, <4 x float> %B) {
+; GFX6-SDAG-LABEL: src:
+; GFX6-SDAG:       ; %bb.0:
+; GFX6-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX6-SDAG-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX6-SDAG-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX6-SDAG-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX6-SDAG-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX6-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX6-GISEL-LABEL: src:
+; GFX6-GISEL:       ; %bb.0:
+; GFX6-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX6-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX6-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX7-SDAG-LABEL: src:
+; GFX7-SDAG:       ; %bb.0:
+; GFX7-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX7-SDAG-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX7-SDAG-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX7-SDAG-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX7-SDAG-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX7-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX7-GISEL-LABEL: src:
+; GFX7-GISEL:       ; %bb.0:
+; GFX7-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX7-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX7-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX8-SDAG-LABEL: src:
+; GFX8-SDAG:       ; %bb.0:
+; GFX8-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX8-SDAG-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX8-SDAG-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX8-SDAG-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX8-SDAG-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX8-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX8-GISEL-LABEL: src:
+; GFX8-GISEL:       ; %bb.0:
+; GFX8-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX8-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX8-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX9-GISEL-LABEL: src:
+; GFX9-GISEL:       ; %bb.0:
+; GFX9-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX9-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX9-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX10-SDAG-LABEL: src:
+; GFX10-SDAG:       ; %bb.0:
+; GFX10-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-SDAG-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX10-SDAG-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX10-SDAG-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX10-SDAG-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX10-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX10-GISEL-LABEL: src:
+; GFX10-GISEL:       ; %bb.0:
+; GFX10-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX10-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX10-GISEL-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX11-SDAG-LABEL: src:
+; GFX11-SDAG:       ; %bb.0:
+; GFX11-SDAG-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX11-SDAG-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX11-SDAG-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX11-SDAG-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX11-SDAG-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX11-SDAG-NEXT:    s_setpc_b64 s[30:31]
+;
+; GFX11-GISEL-LABEL: src:
+; GFX11-GISEL:       ; %bb.0:
+; GFX11-GISEL-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v0, 0x7fffffff, v0
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v1, 0x7fffffff, v1
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v2, 0x7fffffff, v2
+; GFX11-GISEL-NEXT:    v_and_b32_e32 v3, 0x7fffffff, v3
+; GFX11-GISEL-NEXT:    s_setpc_b64 s[30:31]
+  %A0 = call <4 x float> @llvm.fabs.v4f32(<4 x float> %A)
+  %F1 = freeze <4 x float> %A0
+  %A1 = call <4 x float> @llvm.fabs.v4f32(<4 x float> %F1)
+  ret <4 x float> %A1
+}

@Shoreshen Shoreshen requested review from arsenm, RKSimon and shiltian July 18, 2025 02:37
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
; GFX8-SDAG: {{.*}}

define double @tgt(float %a, double %b, double %c) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM except function names should be better

@Shoreshen Shoreshen merged commit 5fe9b52 into llvm:main Jul 18, 2025
9 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 18, 2025

LLVM Buildbot has detected a new failure on builder clang-hip-vega20 running on hip-vega20-0 while building llvm at step 3 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/123/builds/23628

Here is the relevant piece of the build log for the reference
Step 3 (annotate) failure: '../llvm-zorg/zorg/buildbot/builders/annotated/hip-build.sh --jobs=' (failure)
...
[57/59] Linking CXX executable External/HIP/math_h-hip-6.3.0
[58/59] Building CXX object External/HIP/CMakeFiles/TheNextWeek-hip-6.3.0.dir/workload/ray-tracing/TheNextWeek/main.cc.o
[59/59] Linking CXX executable External/HIP/TheNextWeek-hip-6.3.0
+ build_step 'Testing HIP test-suite'
+ echo '@@@BUILD_STEP Testing HIP test-suite@@@'
@@@BUILD_STEP Testing HIP test-suite@@@
+ ninja check-hip-simple
[0/1] cd /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP && /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/llvm/bin/llvm-lit -sv array-hip-6.3.0.test empty-hip-6.3.0.test with-fopenmp-hip-6.3.0.test saxpy-hip-6.3.0.test memmove-hip-6.3.0.test split-kernel-args-hip-6.3.0.test builtin-logb-scalbn-hip-6.3.0.test TheNextWeek-hip-6.3.0.test algorithm-hip-6.3.0.test cmath-hip-6.3.0.test complex-hip-6.3.0.test math_h-hip-6.3.0.test new-hip-6.3.0.test blender.test
-- Testing: 14 tests, 14 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90
FAIL: test-suite :: External/HIP/blender.test (14 of 14)
******************** TEST 'test-suite :: External/HIP/blender.test' FAILED ********************

/home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/tools/timeit-target --timeout 7200 --limit-core 0 --limit-cpu 7200 --limit-file-size 209715200 --limit-rss-size 838860800 --append-exitstatus --redirect-output /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP/Output/blender.test.out --redirect-input /dev/null --summary /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP/Output/blender.test.time /bin/bash test_blender.sh
/bin/bash verify_blender.sh /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP/Output/blender.test.out
Begin Blender test.
TEST_SUITE_HIP_ROOT=/opt/botworker/llvm/External/hip
Render /opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo_release.blend
Blender 4.1.1 (hash e1743a0317bc built 2024-04-15 23:47:45)
Read blend: "/opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo_release.blend"
Could not open as Ogawa file from provided streams.
Unable to open /opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.002", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.003", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.004", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.001", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
Could not open as Ogawa file from provided streams.
Unable to open /opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.002", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.003", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.004", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.001", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
I0718 06:21:15.229774 1545808 device.cpp:39] HIPEW initialization succeeded
I0718 06:21:15.232275 1545808 device.cpp:45] Found HIPCC hipcc
I0718 06:21:15.284914 1545808 device.cpp:207] Device has compute preemption or is not used for display.
I0718 06:21:15.284934 1545808 device.cpp:211] Added device "" with id "HIP__0000:a3:00".
I0718 06:21:15.285008 1545808 device.cpp:568] Mapped host memory limit set to 536,444,985,344 bytes. (499.60G)
I0718 06:21:15.285248 1545808 device_impl.cpp:63] Using AVX2 CPU kernels.
Fra:1 Mem:524.00M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Eyepiece_rim
Fra:1 Mem:524.00M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.014
Fra:1 Mem:524.00M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.017
Fra:1 Mem:524.22M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.020
Fra:1 Mem:524.27M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Curve_Cables.004
Fra:1 Mem:524.35M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.021
Fra:1 Mem:524.45M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.022
Fra:1 Mem:525.02M (Peak 525.02M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.023
Fra:1 Mem:525.09M (Peak 525.09M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.025
Step 12 (Testing HIP test-suite) failure: Testing HIP test-suite (failure)
@@@BUILD_STEP Testing HIP test-suite@@@
+ ninja check-hip-simple
[0/1] cd /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP && /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/llvm/bin/llvm-lit -sv array-hip-6.3.0.test empty-hip-6.3.0.test with-fopenmp-hip-6.3.0.test saxpy-hip-6.3.0.test memmove-hip-6.3.0.test split-kernel-args-hip-6.3.0.test builtin-logb-scalbn-hip-6.3.0.test TheNextWeek-hip-6.3.0.test algorithm-hip-6.3.0.test cmath-hip-6.3.0.test complex-hip-6.3.0.test math_h-hip-6.3.0.test new-hip-6.3.0.test blender.test
-- Testing: 14 tests, 14 workers --
Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90
FAIL: test-suite :: External/HIP/blender.test (14 of 14)
******************** TEST 'test-suite :: External/HIP/blender.test' FAILED ********************

/home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/tools/timeit-target --timeout 7200 --limit-core 0 --limit-cpu 7200 --limit-file-size 209715200 --limit-rss-size 838860800 --append-exitstatus --redirect-output /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP/Output/blender.test.out --redirect-input /dev/null --summary /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP/Output/blender.test.time /bin/bash test_blender.sh
/bin/bash verify_blender.sh /home/botworker/bbot/clang-hip-vega20/botworker/clang-hip-vega20/test-suite-build/External/HIP/Output/blender.test.out
Begin Blender test.
TEST_SUITE_HIP_ROOT=/opt/botworker/llvm/External/hip
Render /opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo_release.blend
Blender 4.1.1 (hash e1743a0317bc built 2024-04-15 23:47:45)
Read blend: "/opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo_release.blend"
Could not open as Ogawa file from provided streams.
Unable to open /opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.002", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.003", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.004", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.001", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
Could not open as Ogawa file from provided streams.
Unable to open /opt/botworker/llvm/External/hip/Blender_Scenes/290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.002", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.003", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.004", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
WARN (bke.modifier): source/blender/blenkernel/intern/modifier.cc:425 BKE_modifier_set_error: Object: "GEO-flag.001", Modifier: "MeshSequenceCache", Could not create reader for file //290skydemo2_flags.abc
I0718 06:21:15.229774 1545808 device.cpp:39] HIPEW initialization succeeded
I0718 06:21:15.232275 1545808 device.cpp:45] Found HIPCC hipcc
I0718 06:21:15.284914 1545808 device.cpp:207] Device has compute preemption or is not used for display.
I0718 06:21:15.284934 1545808 device.cpp:211] Added device "" with id "HIP__0000:a3:00".
I0718 06:21:15.285008 1545808 device.cpp:568] Mapped host memory limit set to 536,444,985,344 bytes. (499.60G)
I0718 06:21:15.285248 1545808 device_impl.cpp:63] Using AVX2 CPU kernels.
Fra:1 Mem:524.00M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Eyepiece_rim
Fra:1 Mem:524.00M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.014
Fra:1 Mem:524.00M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.017
Fra:1 Mem:524.22M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.020
Fra:1 Mem:524.27M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Curve_Cables.004
Fra:1 Mem:524.35M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.021
Fra:1 Mem:524.45M (Peak 524.70M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.022
Fra:1 Mem:525.02M (Peak 525.02M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.023
Fra:1 Mem:525.09M (Peak 525.09M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.025
Fra:1 Mem:525.16M (Peak 525.16M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.026
Fra:1 Mem:525.25M (Peak 525.26M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Rivets.039
Fra:1 Mem:525.31M (Peak 525.31M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Hoses.003
Fra:1 Mem:527.42M (Peak 527.42M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Curve_Connectors
Fra:1 Mem:527.27M (Peak 527.42M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Curve_Connectors.008
Fra:1 Mem:527.57M (Peak 527.57M) | Time:00:00.69 | Mem:0.00M, Peak:0.00M | Scene, View Layer | Synchronizing object | GEO-Curve_Connectors.009

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AMDGPU llvm:SelectionDAG SelectionDAGISel as well
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants