xref: /aosp_15_r20/external/llvm/test/Transforms/SCCP/apint-array.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -sccp -S | grep "ret i101 12"
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker@Y = constant [6 x i101] [ i101 12, i101 123456789000000, i101 -12,i101
4*9880d681SAndroid Build Coastguard Worker-123456789000000, i101 0,i101 9123456789000000]
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine i101 @array()
7*9880d681SAndroid Build Coastguard Worker{
8*9880d681SAndroid Build Coastguard WorkerHead:
9*9880d681SAndroid Build Coastguard Worker   %A = getelementptr [6 x i101], [6 x i101]* @Y, i32 0, i32 1
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker   %B = load i101, i101* %A
12*9880d681SAndroid Build Coastguard Worker   %C = icmp sge i101 %B, 1
13*9880d681SAndroid Build Coastguard Worker   br i1 %C, label %True, label %False
14*9880d681SAndroid Build Coastguard WorkerTrue:
15*9880d681SAndroid Build Coastguard Worker   %D = and i101 %B, 1
16*9880d681SAndroid Build Coastguard Worker   %E = trunc i101 %D to i32
17*9880d681SAndroid Build Coastguard Worker   %F = getelementptr [6 x i101], [6 x i101]* @Y, i32 0, i32 %E
18*9880d681SAndroid Build Coastguard Worker   %G = load i101, i101* %F
19*9880d681SAndroid Build Coastguard Worker   br label %False
20*9880d681SAndroid Build Coastguard WorkerFalse:
21*9880d681SAndroid Build Coastguard Worker   %H = phi i101 [%G, %True], [-1, %Head]
22*9880d681SAndroid Build Coastguard Worker   ret i101 %H
23*9880d681SAndroid Build Coastguard Worker}
24