35 lines
1.3 KiB
LLVM
35 lines
1.3 KiB
LLVM
; 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" }
|