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
104 lines
4.3 KiB
LLVM
104 lines
4.3 KiB
LLVM
; RUN: llc < %s -mtriple=thumbv7-apple-ios -relocation-model=pic -frame-pointer=all -mcpu=cortex-a8 | FileCheck %s
|
|
; rdar://10676853
|
|
|
|
%struct.Dict_node_struct = type { ptr, ptr, ptr, ptr, ptr }
|
|
%struct.Word_file_struct = type { [60 x i8], i32, ptr }
|
|
%struct.Exp_struct = type { i8, i8, i8, i8, %union.anon }
|
|
%union.anon = type { ptr }
|
|
%struct.E_list_struct = type { ptr, ptr }
|
|
|
|
@lookup_list = external hidden unnamed_addr global ptr, align 4
|
|
|
|
declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind
|
|
|
|
define hidden fastcc void @rdictionary_lookup(ptr %dn, ptr nocapture %s) nounwind ssp {
|
|
; CHECK-LABEL: rdictionary_lookup:
|
|
entry:
|
|
br label %tailrecurse
|
|
|
|
tailrecurse: ; preds = %if.then10, %entry
|
|
%dn.tr = phi ptr [ %dn, %entry ], [ %9, %if.then10 ]
|
|
%cmp = icmp eq ptr %dn.tr, null
|
|
br i1 %cmp, label %if.end11, label %if.end
|
|
|
|
if.end: ; preds = %tailrecurse
|
|
%string = getelementptr inbounds %struct.Dict_node_struct, ptr %dn.tr, i32 0, i32 0
|
|
%0 = load ptr, ptr %string, align 4
|
|
br label %while.cond.i
|
|
|
|
while.cond.i: ; preds = %while.body.i, %if.end
|
|
%1 = phi ptr [ %s, %if.end ], [ %incdec.ptr.i, %while.body.i ]
|
|
%storemerge.i = phi ptr [ %0, %if.end ], [ %incdec.ptr6.i, %while.body.i ]
|
|
%2 = load i8, ptr %1, align 1
|
|
%cmp.i = icmp eq i8 %2, 0
|
|
%.pre.i = load i8, ptr %storemerge.i, align 1
|
|
br i1 %cmp.i, label %lor.lhs.false.i, label %land.end.i
|
|
|
|
land.end.i: ; preds = %while.cond.i
|
|
%cmp4.i = icmp eq i8 %2, %.pre.i
|
|
br i1 %cmp4.i, label %while.body.i, label %while.end.i
|
|
|
|
while.body.i: ; preds = %land.end.i
|
|
%incdec.ptr.i = getelementptr inbounds i8, ptr %1, i32 1
|
|
%incdec.ptr6.i = getelementptr inbounds i8, ptr %storemerge.i, i32 1
|
|
br label %while.cond.i
|
|
|
|
while.end.i: ; preds = %land.end.i
|
|
%cmp8.i = icmp eq i8 %2, 42
|
|
br i1 %cmp8.i, label %if.end3, label %lor.lhs.false.i
|
|
|
|
lor.lhs.false.i: ; preds = %while.end.i, %while.cond.i
|
|
%3 = phi i8 [ %2, %while.end.i ], [ 0, %while.cond.i ]
|
|
%cmp11.i = icmp eq i8 %.pre.i, 42
|
|
br i1 %cmp11.i, label %if.end3, label %dict_match.exit
|
|
|
|
dict_match.exit: ; preds = %lor.lhs.false.i
|
|
%cmp14.i = icmp eq i8 %3, 46
|
|
%conv16.i = sext i8 %3 to i32
|
|
%.conv16.i = select i1 %cmp14.i, i32 0, i32 %conv16.i
|
|
%cmp18.i = icmp eq i8 %.pre.i, 46
|
|
%conv22.i = sext i8 %.pre.i to i32
|
|
%cond24.i = select i1 %cmp18.i, i32 0, i32 %conv22.i
|
|
%sub.i = sub nsw i32 %.conv16.i, %cond24.i
|
|
%cmp1 = icmp sgt i32 %sub.i, -1
|
|
br i1 %cmp1, label %if.end3, label %if.then10
|
|
|
|
if.end3: ; preds = %dict_match.exit, %lor.lhs.false.i, %while.end.i
|
|
; CHECK: %if.end3
|
|
; CHECK: cmp
|
|
; CHECK-NOT: cbnz
|
|
%storemerge1.i3 = phi i32 [ %sub.i, %dict_match.exit ], [ 0, %lor.lhs.false.i ], [ 0, %while.end.i ]
|
|
%right = getelementptr inbounds %struct.Dict_node_struct, ptr %dn.tr, i32 0, i32 4
|
|
%4 = load ptr, ptr %right, align 4
|
|
tail call fastcc void @rdictionary_lookup(ptr %4, ptr %s)
|
|
%cmp4 = icmp eq i32 %storemerge1.i3, 0
|
|
br i1 %cmp4, label %if.then5, label %if.end8
|
|
|
|
if.then5: ; preds = %if.end3
|
|
%call6 = tail call fastcc ptr @xalloc(i32 20)
|
|
%5 = bitcast ptr %call6 to ptr
|
|
%6 = bitcast ptr %dn.tr to ptr
|
|
tail call void @llvm.memcpy.p0.p0.i32(ptr align 4 %call6, ptr align 4 %6, i32 16, i1 false)
|
|
%7 = load ptr, ptr @lookup_list, align 4
|
|
%right7 = getelementptr inbounds i8, ptr %call6, i32 16
|
|
%8 = bitcast ptr %right7 to ptr
|
|
store ptr %7, ptr %8, align 4
|
|
store ptr %5, ptr @lookup_list, align 4
|
|
br label %if.then10
|
|
|
|
if.end8: ; preds = %if.end3
|
|
%cmp9 = icmp slt i32 %storemerge1.i3, 1
|
|
br i1 %cmp9, label %if.then10, label %if.end11
|
|
|
|
if.then10: ; preds = %if.end8, %if.then5, %dict_match.exit
|
|
%left = getelementptr inbounds %struct.Dict_node_struct, ptr %dn.tr, i32 0, i32 3
|
|
%9 = load ptr, ptr %left, align 4
|
|
br label %tailrecurse
|
|
|
|
if.end11: ; preds = %if.end8, %tailrecurse
|
|
ret void
|
|
}
|
|
|
|
; Materializable
|
|
declare hidden fastcc ptr @xalloc(i32) nounwind ssp
|