[all-commits] [llvm/llvm-project] 49d6e3: [AMDGPU] add tests for loop definition of bitconve...
Shoreshen via All-commits
all-commits at lists.llvm.org
Mon Apr 7 20:41:00 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 49d6e39eba88fdf7975c6f4dcb38595538331e6a
https://github.com/llvm/llvm-project/commit/49d6e39eba88fdf7975c6f4dcb38595538331e6a
Author: Shoreshen <372660931 at qq.com>
Date: 2025-04-08 (Tue, 08 Apr 2025)
Changed paths:
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.128bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.160bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.16bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.192bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.224bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.288bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.320bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.32bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.352bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.384bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.448bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.48bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.576bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.640bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.64bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.704bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.96bit.ll
R llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.ll
A llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.ptr.ll
Log Message:
-----------
[AMDGPU] add tests for loop definition of bitconvert (#133052)
This PR add test cases for all types of bit conversation, it prepares
for PR: https://github.com/llvm/llvm-project/pull/132899
All tests passed due to:
1. For DAG, pattern will not separate SReg and VReg. One of the sample
is:
```
define <2 x double> @v_bitcast_v4f32_to_v2f64(<4 x float> inreg %a, i32
%b) {
%cmp = icmp eq i32 %b, 0
br i1 %cmp, label %cmp.true, label %cmp.false
cmp.true:
%a1 = fadd <4 x float> %a, splat (float 1.000000e+00)
%a2 = bitcast <4 x float> %a1 to <2 x double>
br label %end
cmp.false:
%a3 = bitcast <4 x float> %a to <2 x double>
br label %end
end:
%phi = phi <2 x double> [ %a2, %cmp.true ], [ %a3, %cmp.false ]
ret <2 x double> %phi
}
```
It suppose to select from scalar register patterns. But the Vreg pattern
is matched is as follow:
```
Debug log:
ISEL: Starting selection on root node: t3: v2f64 = bitcast t2
ISEL: Starting pattern match
Initial Opcode index to 440336
Skipped scope entry (due to false predicate) at index 440339, continuing
at 440367
Skipped scope entry (due to false predicate) at index 440368, continuing
at 440396
Skipped scope entry (due to false predicate) at index 440397, continuing
at 440435
Skipped scope entry (due to false predicate) at index 440436, continuing
at 440467
Skipped scope entry (due to false predicate) at index 440468, continuing
at 440499
Skipped scope entry (due to false predicate) at index 440500, continuing
at 440552
Skipped scope entry (due to false predicate) at index 440553, continuing
at 440587
Skipped scope entry (due to false predicate) at index 440588, continuing
at 440622
Skipped scope entry (due to false predicate) at index 440623, continuing
at 440657
Skipped scope entry (due to false predicate) at index 440658, continuing
at 440692
Skipped scope entry (due to false predicate) at index 440693, continuing
at 440727
Skipped scope entry (due to false predicate) at index 440728, continuing
at 440769
Skipped scope entry (due to false predicate) at index 440770, continuing
at 440798
Skipped scope entry (due to false predicate) at index 440799, continuing
at 440836
Skipped scope entry (due to false predicate) at index 440837, continuing
at 440870
TypeSwitch[v2f64] from 440873 to 440892
Patterns:
/*440892*/ OPC_CompleteMatch, 1, 0,
// Src: (bitconvert:{ *:[v2f64] } VReg_128:{ *:[v4f32] }:$src0) -
Complexity = 3
// Dst: VReg_128:{ *:[v2f64] }:$src0
```
2. Global isel will use `Select_COPY` to select bitcast
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list