forked from OSchip/llvm-project
38 lines
1.1 KiB
LLVM
38 lines
1.1 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefix=X86
|
|
; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=X64
|
|
|
|
define void @PR36250() {
|
|
; X86-LABEL: PR36250:
|
|
; X86: # %bb.0:
|
|
; X86-NEXT: movl (%eax), %eax
|
|
; X86-NEXT: movl %eax, %ecx
|
|
; X86-NEXT: roll %ecx
|
|
; X86-NEXT: addl %eax, %eax
|
|
; X86-NEXT: movl %ecx, %edx
|
|
; X86-NEXT: orl %ecx, %edx
|
|
; X86-NEXT: orl %ecx, %edx
|
|
; X86-NEXT: orl %eax, %edx
|
|
; X86-NEXT: orl %ecx, %edx
|
|
; X86-NEXT: sete (%eax)
|
|
; X86-NEXT: retl
|
|
;
|
|
; X64-LABEL: PR36250:
|
|
; X64: # %bb.0:
|
|
; X64-NEXT: movq (%rax), %rax
|
|
; X64-NEXT: movq %rax, %rcx
|
|
; X64-NEXT: rolq %rcx
|
|
; X64-NEXT: addq %rax, %rax
|
|
; X64-NEXT: movq %rcx, %rdx
|
|
; X64-NEXT: orq %rcx, %rdx
|
|
; X64-NEXT: orq %rax, %rdx
|
|
; X64-NEXT: orq %rcx, %rdx
|
|
; X64-NEXT: sete (%rax)
|
|
; X64-NEXT: retq
|
|
%1 = load i448, i448* undef
|
|
%2 = sub i448 0, %1
|
|
%3 = icmp eq i448 %1, %2
|
|
store i1 %3, i1* undef
|
|
ret void
|
|
}
|