bolt/deps/llvm-18.1.8/llvm/test/Transforms/LoopUnroll/X86/mmx.ll

36 lines
1.3 KiB
LLVM
Raw Normal View History

2025-02-14 19:21:04 +01:00
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2
; RUN: opt < %s -S -passes=loop-unroll | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define x86_mmx @f() #0 {
; CHECK-LABEL: define x86_mmx @f
; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
; CHECK: for.body:
; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ 1, [[ENTRY:%.*]] ], [ [[ADD_7:%.*]], [[FOR_BODY]] ]
; CHECK-NEXT: [[ADD_6:%.*]] = add i32 [[PHI]], 7
; CHECK-NEXT: [[ADD_7]] = add i32 [[PHI]], 8
; CHECK-NEXT: [[CMP_7:%.*]] = icmp eq i32 [[ADD_6]], 0
; CHECK-NEXT: br i1 [[CMP_7]], label [[EXIT:%.*]], label [[FOR_BODY]]
; CHECK: exit:
; CHECK-NEXT: [[RET:%.*]] = phi x86_mmx [ undef, [[FOR_BODY]] ]
; CHECK-NEXT: ret x86_mmx [[RET]]
;
entry:
br label %for.body
for.body: ; preds = %for.body, %entry
%phi = phi i32 [ 1, %entry ], [ %add, %for.body ]
%add = add i32 %phi, 1
%cmp = icmp eq i32 %phi, 0
br i1 %cmp, label %exit, label %for.body
exit: ; preds = %for.body
%ret = phi x86_mmx [ undef, %for.body ]
ret x86_mmx %ret
}
attributes #0 = { "target-cpu"="x86-64" }