[llvm-branch-commits] [llvm] [X86] load atomic vector tests for combine (PR #120640)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Jan 2 11:21:18 PST 2025


https://github.com/jofrn updated https://github.com/llvm/llvm-project/pull/120640

>From 13ea377347ae290aa2093f783e56e2721156a399 Mon Sep 17 00:00:00 2001
From: jofrn <jofernau at amd.com>
Date: Thu, 19 Dec 2024 16:25:55 -0500
Subject: [PATCH] [X86] load atomic vector tests for combine

Vector types of 2 elements that don't require widening are lowered
via the prior commit's combine method, which is also needed to avoid
a vector move. This change adds the tests that depend strictly on
combineAtomicLoad so that SelectionDAG can translate vectors
with type bfloat,half.

commit-id:3a045357
---
 llvm/test/CodeGen/X86/atomic-load-store.ll | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/llvm/test/CodeGen/X86/atomic-load-store.ll b/llvm/test/CodeGen/X86/atomic-load-store.ll
index 7b2e5e60eca20e..34e541c029e1b2 100644
--- a/llvm/test/CodeGen/X86/atomic-load-store.ll
+++ b/llvm/test/CodeGen/X86/atomic-load-store.ll
@@ -187,6 +187,24 @@ define <2 x float> @atomic_vec2_float_align(ptr %x) {
   ret <2 x float> %ret
 }
 
+define <2 x half> @atomic_vec2_half(ptr %x) {
+; CHECK-LABEL: atomic_vec2_half:
+; CHECK:       ## %bb.0:
+; CHECK-NEXT:    movl (%rdi), %eax
+; CHECK-NEXT:    retq
+  %ret = load atomic <2 x half>, ptr %x acquire, align 4
+  ret <2 x half> %ret
+}
+
+define <2 x bfloat> @atomic_vec2_bfloat(ptr %x) {
+; CHECK-LABEL: atomic_vec2_bfloat:
+; CHECK:       ## %bb.0:
+; CHECK-NEXT:    movl (%rdi), %eax
+; CHECK-NEXT:    retq
+  %ret = load atomic <2 x bfloat>, ptr %x acquire, align 4
+  ret <2 x bfloat> %ret
+}
+
 define <1 x ptr> @atomic_vec1_ptr(ptr %x) nounwind {
 ; CHECK3-LABEL: atomic_vec1_ptr:
 ; CHECK3:       ## %bb.0:



More information about the llvm-branch-commits mailing list