xref: /aosp_15_r20/external/llvm/test/Transforms/LoopStrengthReduce/2011-10-14-IntPtr.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt -loop-reduce -S < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker;
3*9880d681SAndroid Build Coastguard Worker; Test SCEVExpander reusing a phi->gep->phi IV when SCEV "wrongly"
4*9880d681SAndroid Build Coastguard Worker; reports the expression as an IntegerTy.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-apple-darwin"
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test(
9*9880d681SAndroid Build Coastguard Worker; CHECK: phi
10*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: phi
11*9880d681SAndroid Build Coastguard Workerdefine void @test(i32 %rowStride) ssp align 2 {
12*9880d681SAndroid Build Coastguard Workerentry:
13*9880d681SAndroid Build Coastguard Worker  %cond = select i1 undef, i32 %rowStride, i32 4
14*9880d681SAndroid Build Coastguard Worker  br label %for.end
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Workerfor.end.critedge:                                 ; preds = %for.end
17*9880d681SAndroid Build Coastguard Worker  br label %for.end
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workerfor.end:                                          ; preds = %for.end.critedge, %entry
20*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %for.body83, label %for.end.critedge
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerfor.body83:                                       ; preds = %for.body83, %for.end
23*9880d681SAndroid Build Coastguard Worker  %ptr.0157 = phi i8* [ %add.ptr96, %for.body83 ], [ null, %for.end ]
24*9880d681SAndroid Build Coastguard Worker  store i8 undef, i8* %ptr.0157, align 1
25*9880d681SAndroid Build Coastguard Worker  %add.ptr96 = getelementptr inbounds i8, i8* %ptr.0157, i32 %cond
26*9880d681SAndroid Build Coastguard Worker  br label %for.body83
27*9880d681SAndroid Build Coastguard Worker}
28