CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
209 lines
4.8 KiB
LLVM
209 lines
4.8 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc -mtriple=x86_64-unknown-linux-gnu < %s 2>&1 | FileCheck %s
|
|
|
|
define i32 @f(ptr %p) {
|
|
; CHECK-LABEL: f:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: testb $8, 1(%rdi)
|
|
; CHECK-NEXT: je .LBB0_1
|
|
; CHECK-NEXT: # %bb.2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB0_1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp eq i16 %and, 0
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_false(ptr %p) {
|
|
; CHECK-LABEL: f_false:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: movb $1, %al
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB1_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB1_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp ult i16 %and, 0
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_false2(ptr %p) {
|
|
; CHECK-LABEL: f_false2:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: movb $1, %al
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB2_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB2_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp ult i16 65535, %and
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_false3(ptr %p) {
|
|
; CHECK-LABEL: f_false3:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: movb $1, %al
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB3_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB3_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp slt i16 32767, %and
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_false4(ptr %p) {
|
|
; CHECK-LABEL: f_false4:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: movb $1, %al
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB4_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB4_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp sgt i16 %and, 32767
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_true(ptr %p) {
|
|
; CHECK-LABEL: f_true:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: xorl %eax, %eax
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB5_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB5_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp sge i16 %and, -32768
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_true2(ptr %p) {
|
|
; CHECK-LABEL: f_true2:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: xorl %eax, %eax
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB6_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB6_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp uge i16 %and, 0
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_true3(ptr %p) {
|
|
; CHECK-LABEL: f_true3:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: xorl %eax, %eax
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB7_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB7_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp ule i16 0, %and
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|
|
|
|
define i32 @f_true4(ptr %p) {
|
|
; CHECK-LABEL: f_true4:
|
|
; CHECK: # %bb.0:
|
|
; CHECK-NEXT: xorl %eax, %eax
|
|
; CHECK-NEXT: testb %al, %al
|
|
; CHECK-NEXT: jne .LBB8_2
|
|
; CHECK-NEXT: # %bb.1: # %A
|
|
; CHECK-NEXT: movl $10, %eax
|
|
; CHECK-NEXT: retq
|
|
; CHECK-NEXT: .LBB8_2: # %B
|
|
; CHECK-NEXT: movl $20, %eax
|
|
; CHECK-NEXT: retq
|
|
%v = load i16, ptr %p, align 2
|
|
%and = and i16 %v, 2048
|
|
%cond = icmp ule i16 %and, 65535
|
|
%cond.fr = freeze i1 %cond
|
|
br i1 %cond.fr, label %A, label %B
|
|
A:
|
|
ret i32 10
|
|
B:
|
|
ret i32 20
|
|
}
|