Skip to content

Commit

Permalink
[X86] Convert tests to opaque pointers (NFC)
Browse files Browse the repository at this point in the history
  • Loading branch information
nikic committed Feb 5, 2024
1 parent 00a4e24 commit 6e83c0a
Show file tree
Hide file tree
Showing 50 changed files with 1,937 additions and 1,939 deletions.
10 changes: 5 additions & 5 deletions llvm/test/CodeGen/X86/AMX/amx-combine.ll
Original file line number Diff line number Diff line change
Expand Up @@ -133,21 +133,21 @@ entry:
ret void
}

define void @combine_v256i8amcast_with_store(i8* %src_ptr, <256 x i8>* %dst_ptr) {
define void @combine_v256i8amcast_with_store(ptr %src_ptr, ptr %dst_ptr) {
; CHECK-LABEL: @combine_v256i8amcast_with_store(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TILE:%.*]] = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 32, ptr [[SRC_PTR:%.*]], i64 64)
; CHECK-NEXT: call void @llvm.x86.tilestored64.internal(i16 8, i16 32, ptr [[DST_PTR:%.*]], i64 32, x86_amx [[TILE]])
; CHECK-NEXT: ret void
;
entry:
%tile = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 32, i8* %src_ptr, i64 64)
%tile = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 32, ptr %src_ptr, i64 64)
%vec = call <256 x i8> @llvm.x86.cast.tile.to.vector.v256i8(x86_amx %tile)
store <256 x i8> %vec, <256 x i8>* %dst_ptr, align 256
store <256 x i8> %vec, ptr %dst_ptr, align 256
ret void
}

define void @combine_v256i8amcast_with_load(i8* %src_ptr, <256 x i8>* %dst_ptr) {
define void @combine_v256i8amcast_with_load(ptr %src_ptr, ptr %dst_ptr) {
; CHECK-LABEL: @combine_v256i8amcast_with_load(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 32, ptr [[SRC_PTR:%.*]], i64 32)
Expand All @@ -157,7 +157,7 @@ define void @combine_v256i8amcast_with_load(i8* %src_ptr, <256 x i8>* %dst_ptr)
entry:
%vec = load <256 x i8>, ptr %src_ptr, align 256
%tile = call x86_amx @llvm.x86.cast.vector.to.tile.v256i8(<256 x i8> %vec)
call void @llvm.x86.tilestored64.internal(i16 8, i16 32, <256 x i8>* %dst_ptr, i64 32, x86_amx %tile)
call void @llvm.x86.tilestored64.internal(i16 8, i16 32, ptr %dst_ptr, i64 32, x86_amx %tile)
ret void
}

Expand Down
12 changes: 6 additions & 6 deletions llvm/test/CodeGen/X86/AMX/amx-tile-complex-internals.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
; RUN: -mattr=+amx-complex \
; RUN: -verify-machineinstrs | FileCheck %s

define void @test_amx(i8* %pointer, i8* %base, i64 %stride) {
define void @test_amx(ptr %pointer, ptr %base, i64 %stride) {
; CHECK-LABEL: test_amx:
; CHECK: # %bb.0:
; CHECK-NEXT: vxorps %xmm0, %xmm0, %xmm0
Expand All @@ -27,21 +27,21 @@ define void @test_amx(i8* %pointer, i8* %base, i64 %stride) {
; CHECK-NEXT: vzeroupper
; CHECK-NEXT: retq

%a = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 8, i8* %base, i64 %stride)
%a = call x86_amx @llvm.x86.tileloadd64.internal(i16 8, i16 8, ptr %base, i64 %stride)
%b = call x86_amx @llvm.x86.tilezero.internal(i16 8, i16 8)
%c = call x86_amx @llvm.x86.tilezero.internal(i16 8, i16 8)

%c1 = call x86_amx @llvm.x86.tcmmimfp16ps.internal(i16 8, i16 8, i16 8, x86_amx %c, x86_amx %a, x86_amx %b)
%c2 = call x86_amx @llvm.x86.tcmmrlfp16ps.internal(i16 8, i16 8, i16 8, x86_amx %c1, x86_amx %a, x86_amx %b)

call void @llvm.x86.tilestored64.internal(i16 8, i16 8, i8* %pointer, i64 %stride, x86_amx %c2)
call void @llvm.x86.tilestored64.internal(i16 8, i16 8, ptr %pointer, i64 %stride, x86_amx %c2)
ret void
}

declare x86_amx @llvm.x86.tilezero.internal(i16, i16)
declare x86_amx @llvm.x86.tileloadd64.internal(i16, i16, i8*, i64)
declare x86_amx @llvm.x86.tileloaddt164.internal(i16, i16, i8*, i64)
declare void @llvm.x86.tilestored64.internal(i16, i16, i8*, i64, x86_amx)
declare x86_amx @llvm.x86.tileloadd64.internal(i16, i16, ptr, i64)
declare x86_amx @llvm.x86.tileloaddt164.internal(i16, i16, ptr, i64)
declare void @llvm.x86.tilestored64.internal(i16, i16, ptr, i64, x86_amx)

declare x86_amx @llvm.x86.tcmmimfp16ps.internal(i16, i16, i16, x86_amx, x86_amx, x86_amx)
declare x86_amx @llvm.x86.tcmmrlfp16ps.internal(i16, i16, i16, x86_amx, x86_amx, x86_amx)
126 changes: 63 additions & 63 deletions llvm/test/CodeGen/X86/GlobalISel/x86_64-irtranslator-struct-return.ll
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ define float @test_return_f1(float %f.coerce) {
entry:
%retval = alloca %struct.f1, align 4
%f = alloca %struct.f1, align 4
%coerce.dive = getelementptr inbounds %struct.f1, %struct.f1* %f, i32 0, i32 0
store float %f.coerce, float* %coerce.dive, align 4
%0 = bitcast %struct.f1* %retval to i8*
%1 = bitcast %struct.f1* %f to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %0, i8* align 4 %1, i64 4, i1 false)
%coerce.dive1 = getelementptr inbounds %struct.f1, %struct.f1* %retval, i32 0, i32 0
%2 = load float, float* %coerce.dive1, align 4
%coerce.dive = getelementptr inbounds %struct.f1, ptr %f, i32 0, i32 0
store float %f.coerce, ptr %coerce.dive, align 4
%0 = bitcast ptr %retval to ptr
%1 = bitcast ptr %f to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 4 %0, ptr align 4 %1, i64 4, i1 false)
%coerce.dive1 = getelementptr inbounds %struct.f1, ptr %retval, i32 0, i32 0
%2 = load float, ptr %coerce.dive1, align 4
ret float %2
}

declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #1
declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #1

define double @test_return_d1(double %d.coerce) {
; ALL-LABEL: name: test_return_d1
Expand All @@ -55,13 +55,13 @@ define double @test_return_d1(double %d.coerce) {
entry:
%retval = alloca %struct.d1, align 8
%d = alloca %struct.d1, align 8
%coerce.dive = getelementptr inbounds %struct.d1, %struct.d1* %d, i32 0, i32 0
store double %d.coerce, double* %coerce.dive, align 8
%0 = bitcast %struct.d1* %retval to i8*
%1 = bitcast %struct.d1* %d to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %0, i8* align 8 %1, i64 8, i1 false)
%coerce.dive1 = getelementptr inbounds %struct.d1, %struct.d1* %retval, i32 0, i32 0
%2 = load double, double* %coerce.dive1, align 8
%coerce.dive = getelementptr inbounds %struct.d1, ptr %d, i32 0, i32 0
store double %d.coerce, ptr %coerce.dive, align 8
%0 = bitcast ptr %retval to ptr
%1 = bitcast ptr %d to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %1, i64 8, i1 false)
%coerce.dive1 = getelementptr inbounds %struct.d1, ptr %retval, i32 0, i32 0
%2 = load double, ptr %coerce.dive1, align 8
ret double %2
}

Expand Down Expand Up @@ -89,16 +89,16 @@ define { double, double } @test_return_d2(double %d.coerce0, double %d.coerce1)
entry:
%retval = alloca %struct.d2, align 8
%d = alloca %struct.d2, align 8
%0 = bitcast %struct.d2* %d to { double, double }*
%1 = getelementptr inbounds { double, double }, { double, double }* %0, i32 0, i32 0
store double %d.coerce0, double* %1, align 8
%2 = getelementptr inbounds { double, double }, { double, double }* %0, i32 0, i32 1
store double %d.coerce1, double* %2, align 8
%3 = bitcast %struct.d2* %retval to i8*
%4 = bitcast %struct.d2* %d to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %4, i64 16, i1 false)
%5 = bitcast %struct.d2* %retval to { double, double }*
%6 = load { double, double }, { double, double }* %5, align 8
%0 = bitcast ptr %d to ptr
%1 = getelementptr inbounds { double, double }, ptr %0, i32 0, i32 0
store double %d.coerce0, ptr %1, align 8
%2 = getelementptr inbounds { double, double }, ptr %0, i32 0, i32 1
store double %d.coerce1, ptr %2, align 8
%3 = bitcast ptr %retval to ptr
%4 = bitcast ptr %d to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %4, i64 16, i1 false)
%5 = bitcast ptr %retval to ptr
%6 = load { double, double }, ptr %5, align 8
ret { double, double } %6
}

Expand All @@ -119,13 +119,13 @@ define i32 @test_return_i1(i32 %i.coerce) {
entry:
%retval = alloca %struct.i1, align 4
%i = alloca %struct.i1, align 4
%coerce.dive = getelementptr inbounds %struct.i1, %struct.i1* %i, i32 0, i32 0
store i32 %i.coerce, i32* %coerce.dive, align 4
%0 = bitcast %struct.i1* %retval to i8*
%1 = bitcast %struct.i1* %i to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %0, i8* align 4 %1, i64 4, i1 false)
%coerce.dive1 = getelementptr inbounds %struct.i1, %struct.i1* %retval, i32 0, i32 0
%2 = load i32, i32* %coerce.dive1, align 4
%coerce.dive = getelementptr inbounds %struct.i1, ptr %i, i32 0, i32 0
store i32 %i.coerce, ptr %coerce.dive, align 4
%0 = bitcast ptr %retval to ptr
%1 = bitcast ptr %i to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 4 %0, ptr align 4 %1, i64 4, i1 false)
%coerce.dive1 = getelementptr inbounds %struct.i1, ptr %retval, i32 0, i32 0
%2 = load i32, ptr %coerce.dive1, align 4
ret i32 %2
}

Expand All @@ -146,13 +146,13 @@ define i64 @test_return_i2(i64 %i.coerce) {
entry:
%retval = alloca %struct.i2, align 4
%i = alloca %struct.i2, align 4
%0 = bitcast %struct.i2* %i to i64*
store i64 %i.coerce, i64* %0, align 4
%1 = bitcast %struct.i2* %retval to i8*
%2 = bitcast %struct.i2* %i to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %1, i8* align 4 %2, i64 8, i1 false)
%3 = bitcast %struct.i2* %retval to i64*
%4 = load i64, i64* %3, align 4
%0 = bitcast ptr %i to ptr
store i64 %i.coerce, ptr %0, align 4
%1 = bitcast ptr %retval to ptr
%2 = bitcast ptr %i to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 4 %1, ptr align 4 %2, i64 8, i1 false)
%3 = bitcast ptr %retval to ptr
%4 = load i64, ptr %3, align 4
ret i64 %4
}

Expand Down Expand Up @@ -186,20 +186,20 @@ entry:
%i = alloca %struct.i3, align 4
%coerce = alloca { i64, i32 }, align 4
%tmp = alloca { i64, i32 }, align 8
%0 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %coerce, i32 0, i32 0
store i64 %i.coerce0, i64* %0, align 4
%1 = getelementptr inbounds { i64, i32 }, { i64, i32 }* %coerce, i32 0, i32 1
store i32 %i.coerce1, i32* %1, align 4
%2 = bitcast %struct.i3* %i to i8*
%3 = bitcast { i64, i32 }* %coerce to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 %3, i64 12, i1 false)
%4 = bitcast %struct.i3* %retval to i8*
%5 = bitcast %struct.i3* %i to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %4, i8* align 4 %5, i64 12, i1 false)
%6 = bitcast { i64, i32 }* %tmp to i8*
%7 = bitcast %struct.i3* %retval to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %6, i8* align 4 %7, i64 12, i1 false)
%8 = load { i64, i32 }, { i64, i32 }* %tmp, align 8
%0 = getelementptr inbounds { i64, i32 }, ptr %coerce, i32 0, i32 0
store i64 %i.coerce0, ptr %0, align 4
%1 = getelementptr inbounds { i64, i32 }, ptr %coerce, i32 0, i32 1
store i32 %i.coerce1, ptr %1, align 4
%2 = bitcast ptr %i to ptr
%3 = bitcast ptr %coerce to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 4 %2, ptr align 4 %3, i64 12, i1 false)
%4 = bitcast ptr %retval to ptr
%5 = bitcast ptr %i to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 4 %4, ptr align 4 %5, i64 12, i1 false)
%6 = bitcast ptr %tmp to ptr
%7 = bitcast ptr %retval to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 4 %7, i64 12, i1 false)
%8 = load { i64, i32 }, ptr %tmp, align 8
ret { i64, i32 } %8
}

Expand Down Expand Up @@ -227,15 +227,15 @@ define { i64, i64 } @test_return_i4(i64 %i.coerce0, i64 %i.coerce1) {
entry:
%retval = alloca %struct.i4, align 4
%i = alloca %struct.i4, align 4
%0 = bitcast %struct.i4* %i to { i64, i64 }*
%1 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 0
store i64 %i.coerce0, i64* %1, align 4
%2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 1
store i64 %i.coerce1, i64* %2, align 4
%3 = bitcast %struct.i4* %retval to i8*
%4 = bitcast %struct.i4* %i to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 %4, i64 16, i1 false)
%5 = bitcast %struct.i4* %retval to { i64, i64 }*
%6 = load { i64, i64 }, { i64, i64 }* %5, align 4
%0 = bitcast ptr %i to ptr
%1 = getelementptr inbounds { i64, i64 }, ptr %0, i32 0, i32 0
store i64 %i.coerce0, ptr %1, align 4
%2 = getelementptr inbounds { i64, i64 }, ptr %0, i32 0, i32 1
store i64 %i.coerce1, ptr %2, align 4
%3 = bitcast ptr %retval to ptr
%4 = bitcast ptr %i to ptr
call void @llvm.memcpy.p0.p0.i64(ptr align 4 %3, ptr align 4 %4, i64 16, i1 false)
%5 = bitcast ptr %retval to ptr
%6 = load { i64, i64 }, ptr %5, align 4
ret { i64, i64 } %6
}

0 comments on commit 6e83c0a

Please sign in to comment.