xref: /aosp_15_r20/external/llvm/test/ExecutionEngine/test-interp-vec-insertextractvalue.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker ; RUN: %lli -force-interpreter=true %s > /dev/null
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine i32 @main() {
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker    %s1 = insertvalue { i32, { float, double} } undef, i32 9, 0
6*9880d681SAndroid Build Coastguard Worker    %s2 = insertvalue { i32, { float, double} } %s1, float 3.0, 1, 0
7*9880d681SAndroid Build Coastguard Worker    %s3 = insertvalue { i32, { float, double} } %s2, double 5.0, 1, 1
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker    %s4 = extractvalue { i32, { float, double} } %s3, 1
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker    %a1 = extractvalue { i32, { float, double} } %s3, 0
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker    %a2 = extractvalue { i32, { float, double} } %s3, 1, 0
14*9880d681SAndroid Build Coastguard Worker    %a3 = extractvalue { i32, { float, double} } %s3, 1, 1
15*9880d681SAndroid Build Coastguard Worker    %a4 = extractvalue { float, double} %s4, 0
16*9880d681SAndroid Build Coastguard Worker    %a5 = extractvalue { float, double} %s4, 1
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker    %aa = fpext float %a4 to double
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker ret i32 0
21*9880d681SAndroid Build Coastguard Worker}
22