[llvm] a0adadd - [X86] Add test coverage for #62145
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 4 09:28:19 PDT 2025
Author: Simon Pilgrim
Date: 2025-06-04T17:28:05+01:00
New Revision: a0adadd01fb5e3d063cb480c60b31df184d08256
URL: https://github.com/llvm/llvm-project/commit/a0adadd01fb5e3d063cb480c60b31df184d08256
DIFF: https://github.com/llvm/llvm-project/commit/a0adadd01fb5e3d063cb480c60b31df184d08256.diff
LOG: [X86] Add test coverage for #62145
Added:
llvm/test/CodeGen/X86/pr62145.ll
Modified:
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/X86/pr62145.ll b/llvm/test/CodeGen/X86/pr62145.ll
new file mode 100644
index 0000000000000..509708fb417c4
--- /dev/null
+++ b/llvm/test/CodeGen/X86/pr62145.ll
@@ -0,0 +1,86 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefixes=X86
+; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefixes=X64
+
+define void @f(i64 %a, i64 %b) nounwind {
+; X86-LABEL: f:
+; X86: # %bb.0: # %entry
+; X86-NEXT: pushl %ebx
+; X86-NEXT: pushl %edi
+; X86-NEXT: pushl %esi
+; X86-NEXT: movl {{[0-9]+}}(%esp), %esi
+; X86-NEXT: movzwl {{[0-9]+}}(%esp), %eax
+; X86-NEXT: movl $-65536, %ebx # imm = 0xFFFF0000
+; X86-NEXT: movl $-589824, %edi # imm = 0xFFF70000
+; X86-NEXT: cmpl $65527, %eax # imm = 0xFFF7
+; X86-NEXT: jne .LBB0_2
+; X86-NEXT: # %bb.1: # %if.then
+; X86-NEXT: calll ext1 at PLT
+; X86-NEXT: .LBB0_2: # %if.end
+; X86-NEXT: calll ext2 at PLT
+; X86-NEXT: andl %ebx, %esi
+; X86-NEXT: xorl %edi, %esi
+; X86-NEXT: jne .LBB0_3
+; X86-NEXT: # %bb.4: # %if.then2
+; X86-NEXT: popl %esi
+; X86-NEXT: popl %edi
+; X86-NEXT: popl %ebx
+; X86-NEXT: jmp ext1 at PLT # TAILCALL
+; X86-NEXT: .LBB0_3: # %if.end3
+; X86-NEXT: popl %esi
+; X86-NEXT: popl %edi
+; X86-NEXT: popl %ebx
+; X86-NEXT: retl
+;
+; X64-LABEL: f:
+; X64: # %bb.0: # %entry
+; X64-NEXT: pushq %r15
+; X64-NEXT: pushq %r14
+; X64-NEXT: pushq %rbx
+; X64-NEXT: movq %rsi, %rbx
+; X64-NEXT: movabsq $-281474976710656, %r14 # imm = 0xFFFF000000000000
+; X64-NEXT: movabsq $-2533274790395904, %r15 # imm = 0xFFF7000000000000
+; X64-NEXT: shrq $48, %rdi
+; X64-NEXT: cmpl $65527, %edi # imm = 0xFFF7
+; X64-NEXT: jne .LBB0_2
+; X64-NEXT: # %bb.1: # %if.then
+; X64-NEXT: callq ext1 at PLT
+; X64-NEXT: .LBB0_2: # %if.end
+; X64-NEXT: callq ext2 at PLT
+; X64-NEXT: andq %r14, %rbx
+; X64-NEXT: cmpq %r15, %rbx
+; X64-NEXT: jne .LBB0_3
+; X64-NEXT: # %bb.4: # %if.then2
+; X64-NEXT: popq %rbx
+; X64-NEXT: popq %r14
+; X64-NEXT: popq %r15
+; X64-NEXT: jmp ext1 at PLT # TAILCALL
+; X64-NEXT: .LBB0_3: # %if.end3
+; X64-NEXT: popq %rbx
+; X64-NEXT: popq %r14
+; X64-NEXT: popq %r15
+; X64-NEXT: retq
+entry:
+ %shr.mask.i = and i64 %a, -281474976710656
+ %cmp.i = icmp eq i64 %shr.mask.i, -2533274790395904
+ br i1 %cmp.i, label %if.then, label %if.end
+
+if.then:
+ tail call void @ext1()
+ br label %if.end
+
+if.end:
+ tail call void @ext2()
+ %shr.mask.i4 = and i64 %b, -281474976710656
+ %cmp.i5 = icmp eq i64 %shr.mask.i4, -2533274790395904
+ br i1 %cmp.i5, label %if.then2, label %if.end3
+
+if.then2:
+ tail call void @ext1()
+ br label %if.end3
+
+if.end3:
+ ret void
+}
+declare void @ext1()
+declare void @ext2()
More information about the llvm-commits
mailing list