brintos

brintos / llvm-project-archived public Read only

0
0
Text · 52.0 KiB · 0efb0ab Raw
743 lines · cpp
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --include-generated-funcs --replace-value-regex "__omp_offloading_[0-9a-z]+_[0-9a-z]+" "reduction_size[.].+[.]" "pl_cond[.].+[.|,]" --prefix-filecheck-ir-name _ --version 52// RUN: %clang_cc1 -std=c++11 -fopenmp -fopenmp-version=51 -triple x86_64 \3// RUN:   -emit-llvm -o - %s | FileCheck --check-prefix OMP51 %s4 5// RUN: %clang_cc1 -std=c++11 -fopenmp -fopenmp-version=60 -triple x86_64 \6// RUN:   -emit-llvm -o - %s | FileCheck --check-prefix OMP60 %s7 8// RUN: %clang_cc1 -std=c++11 -fopenmp-simd -fopenmp-version=51 \9// RUN:  -debug-info-kind=limited -triple x86_64 -emit-llvm -o - %s |  \10// RUN:  FileCheck  --check-prefix SIMD %s11 12// RUN: %clang_cc1 -std=c++11 -fopenmp-simd -fopenmp-version=60 \13// RUN:  -debug-info-kind=limited -triple x86_64 -emit-llvm -o - %s |  \14// RUN:  FileCheck  --check-prefix SIMD %s15 16 17void foo() {}18 19template <typename T, int N>20int tmain(T argc, char **argv) {21  T b = argc, c, d, e, f, g;22  static int a;23  const char str1[] = "msg";24  const char *str2 = "msg";25  char str3[] = "msg";26  char *str4 = str3;27  char * const str5 = str3;28#pragma omp error at(execution) severity(fatal) message("GNU compiler required.")29#pragma omp error at(execution) severity(fatal) message(str1)30#pragma omp error at(execution) severity(fatal) message(str2)31#pragma omp error at(execution) severity(fatal) message(str3)32#pragma omp error at(execution) severity(fatal) message(str4)33#pragma omp error at(execution) severity(fatal) message(str5)34  a = argv[0][0];35  ++a;36#pragma omp error at(execution) severity(warning) message("Notice: add for loop.")37#pragma omp error at(execution) severity(warning) message(str1)38#pragma omp error at(execution) severity(warning) message(str2)39#pragma omp error at(execution) severity(warning) message(str3)40#pragma omp error at(execution) severity(warning) message(str4)41#pragma omp error at(execution) severity(warning) message(str5)42  {43    int b = 10;44    T c = 100;45    a = b + c;46  }47#pragma omp error at(execution) severity(fatal) message("GPU compiler required.")48#pragma omp error at(execution) severity(fatal) message(str1)49#pragma omp error at(execution) severity(fatal) message(str2)50#pragma omp error at(execution) severity(fatal) message(str3)51#pragma omp error at(execution) severity(fatal) message(str4)52#pragma omp error at(execution) severity(fatal) message(str5)53  foo();54return N;55}56 57 58 59int main (int argc, char **argv) {60  int b = argc, c, d, e, f, g;61  static int a;62  const char str1[] = "msg";63  const char *str2 = "msg";64  char str3[] = "msg";65  char *str4 = str3;66  char * const str5 = str3;67#pragma omp error at(execution) severity(fatal) message("GPU compiler required.")68#pragma omp error at(execution) severity(fatal) message(str1)69#pragma omp error at(execution) severity(fatal) message(str2)70#pragma omp error at(execution) severity(fatal) message(str3)71#pragma omp error at(execution) severity(fatal) message(str4)72#pragma omp error at(execution) severity(fatal) message(str5)73   a=2;74#pragma omp error at(execution) severity(warning) message("Note this is functioncall.")75#pragma omp error at(execution) severity(warning) message(str1)76#pragma omp error at(execution) severity(warning) message(str2)77#pragma omp error at(execution) severity(warning) message(str3)78#pragma omp error at(execution) severity(warning) message(str4)79#pragma omp error at(execution) severity(warning) message(str5)80  foo();81  tmain<int, 10>(argc, argv);82}83 84// CHECK-LABEL: define dso_local void @_Z3foov(85// CHECK-SAME: ) #[[ATTR0:[0-9]+]] {86// CHECK-NEXT:  [[ENTRY:.*:]]87// CHECK-NEXT:    ret void88// CHECK-LABEL: define dso_local noundef i32 @main(89// CHECK-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR1:[0-9]+]] {90// CHECK-NEXT:  [[ENTRY:.*:]]91// CHECK-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 492// CHECK-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 893// CHECK-NEXT:    [[B:%.*]] = alloca i32, align 494// CHECK-NEXT:    [[C:%.*]] = alloca i32, align 495// CHECK-NEXT:    [[D:%.*]] = alloca i32, align 496// CHECK-NEXT:    [[E:%.*]] = alloca i32, align 497// CHECK-NEXT:    [[F:%.*]] = alloca i32, align 498// CHECK-NEXT:    [[G:%.*]] = alloca i32, align 499// CHECK-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1100// CHECK-NEXT:    [[STR2:%.*]] = alloca ptr, align 8101// CHECK-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1102// CHECK-NEXT:    [[STR4:%.*]] = alloca ptr, align 8103// CHECK-NEXT:    [[STR5:%.*]] = alloca ptr, align 8104// CHECK-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4105// CHECK-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8106// CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4107// CHECK-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4108// CHECK-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const.main.str1, i64 4, i1 false)109// CHECK-NEXT:    store ptr @.str, ptr [[STR2]], align 8110// CHECK-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const.main.str3, i64 4, i1 false)111// CHECK-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0112// CHECK-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8113// CHECK-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0114// CHECK-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8115// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB1:[0-9]+]], i32 2, ptr @.str.1)116// CHECK-NEXT:    [[ARRAYDECAY2:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0117// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB3:[0-9]+]], i32 2, ptr [[ARRAYDECAY2]])118// CHECK-NEXT:    [[TMP1:%.*]] = load ptr, ptr [[STR2]], align 8119// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB5:[0-9]+]], i32 2, ptr [[TMP1]])120// CHECK-NEXT:    [[ARRAYDECAY3:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0121// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB7:[0-9]+]], i32 2, ptr [[ARRAYDECAY3]])122// CHECK-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[STR4]], align 8123// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB9:[0-9]+]], i32 2, ptr [[TMP2]])124// CHECK-NEXT:    [[TMP3:%.*]] = load ptr, ptr [[STR5]], align 8125// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB11:[0-9]+]], i32 2, ptr [[TMP3]])126// CHECK-NEXT:    store i32 2, ptr @_ZZ4mainE1a, align 4127// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB13:[0-9]+]], i32 1, ptr @.str.2)128// CHECK-NEXT:    [[ARRAYDECAY4:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0129// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB15:[0-9]+]], i32 1, ptr [[ARRAYDECAY4]])130// CHECK-NEXT:    [[TMP4:%.*]] = load ptr, ptr [[STR2]], align 8131// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB17:[0-9]+]], i32 1, ptr [[TMP4]])132// CHECK-NEXT:    [[ARRAYDECAY5:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0133// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB19:[0-9]+]], i32 1, ptr [[ARRAYDECAY5]])134// CHECK-NEXT:    [[TMP5:%.*]] = load ptr, ptr [[STR4]], align 8135// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB21:[0-9]+]], i32 1, ptr [[TMP5]])136// CHECK-NEXT:    [[TMP6:%.*]] = load ptr, ptr [[STR5]], align 8137// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB23:[0-9]+]], i32 1, ptr [[TMP6]])138// CHECK-NEXT:    call void @_Z3foov()139// CHECK-NEXT:    [[TMP7:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4140// CHECK-NEXT:    [[TMP8:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8141// CHECK-NEXT:    [[CALL:%.*]] = call noundef i32 @_Z5tmainIiLi10EEiT_PPc(i32 noundef [[TMP7]], ptr noundef [[TMP8]])142// CHECK-NEXT:    ret i32 0143// CHECK-LABEL: define linkonce_odr noundef i32 @_Z5tmainIiLi10EEiT_PPc(144// CHECK-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR0]] comdat {145// CHECK-NEXT:  [[ENTRY:.*:]]146// CHECK-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 4147// CHECK-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 8148// CHECK-NEXT:    [[B:%.*]] = alloca i32, align 4149// CHECK-NEXT:    [[C:%.*]] = alloca i32, align 4150// CHECK-NEXT:    [[D:%.*]] = alloca i32, align 4151// CHECK-NEXT:    [[E:%.*]] = alloca i32, align 4152// CHECK-NEXT:    [[F:%.*]] = alloca i32, align 4153// CHECK-NEXT:    [[G:%.*]] = alloca i32, align 4154// CHECK-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1155// CHECK-NEXT:    [[STR2:%.*]] = alloca ptr, align 8156// CHECK-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1157// CHECK-NEXT:    [[STR4:%.*]] = alloca ptr, align 8158// CHECK-NEXT:    [[STR5:%.*]] = alloca ptr, align 8159// CHECK-NEXT:    [[B7:%.*]] = alloca i32, align 4160// CHECK-NEXT:    [[C8:%.*]] = alloca i32, align 4161// CHECK-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4162// CHECK-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8163// CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4164// CHECK-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4165// CHECK-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str1, i64 4, i1 false)166// CHECK-NEXT:    store ptr @.str, ptr [[STR2]], align 8167// CHECK-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str3, i64 4, i1 false)168// CHECK-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0169// CHECK-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8170// CHECK-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0171// CHECK-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8172// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB25:[0-9]+]], i32 2, ptr @.str.3)173// CHECK-NEXT:    [[ARRAYDECAY2:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0174// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB27:[0-9]+]], i32 2, ptr [[ARRAYDECAY2]])175// CHECK-NEXT:    [[TMP1:%.*]] = load ptr, ptr [[STR2]], align 8176// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB29:[0-9]+]], i32 2, ptr [[TMP1]])177// CHECK-NEXT:    [[ARRAYDECAY3:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0178// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB31:[0-9]+]], i32 2, ptr [[ARRAYDECAY3]])179// CHECK-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[STR4]], align 8180// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB33:[0-9]+]], i32 2, ptr [[TMP2]])181// CHECK-NEXT:    [[TMP3:%.*]] = load ptr, ptr [[STR5]], align 8182// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB35:[0-9]+]], i32 2, ptr [[TMP3]])183// CHECK-NEXT:    [[TMP4:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8184// CHECK-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP4]], i64 0185// CHECK-NEXT:    [[TMP5:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8186// CHECK-NEXT:    [[ARRAYIDX4:%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i64 0187// CHECK-NEXT:    [[TMP6:%.*]] = load i8, ptr [[ARRAYIDX4]], align 1188// CHECK-NEXT:    [[CONV:%.*]] = sext i8 [[TMP6]] to i32189// CHECK-NEXT:    store i32 [[CONV]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4190// CHECK-NEXT:    [[TMP7:%.*]] = load i32, ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4191// CHECK-NEXT:    [[INC:%.*]] = add nsw i32 [[TMP7]], 1192// CHECK-NEXT:    store i32 [[INC]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4193// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB37:[0-9]+]], i32 1, ptr @.str.4)194// CHECK-NEXT:    [[ARRAYDECAY5:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0195// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB39:[0-9]+]], i32 1, ptr [[ARRAYDECAY5]])196// CHECK-NEXT:    [[TMP8:%.*]] = load ptr, ptr [[STR2]], align 8197// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB41:[0-9]+]], i32 1, ptr [[TMP8]])198// CHECK-NEXT:    [[ARRAYDECAY6:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0199// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB43:[0-9]+]], i32 1, ptr [[ARRAYDECAY6]])200// CHECK-NEXT:    [[TMP9:%.*]] = load ptr, ptr [[STR4]], align 8201// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB45:[0-9]+]], i32 1, ptr [[TMP9]])202// CHECK-NEXT:    [[TMP10:%.*]] = load ptr, ptr [[STR5]], align 8203// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB47:[0-9]+]], i32 1, ptr [[TMP10]])204// CHECK-NEXT:    store i32 10, ptr [[B7]], align 4205// CHECK-NEXT:    store i32 100, ptr [[C8]], align 4206// CHECK-NEXT:    [[TMP11:%.*]] = load i32, ptr [[B7]], align 4207// CHECK-NEXT:    [[TMP12:%.*]] = load i32, ptr [[C8]], align 4208// CHECK-NEXT:    [[ADD:%.*]] = add nsw i32 [[TMP11]], [[TMP12]]209// CHECK-NEXT:    store i32 [[ADD]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4210// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB49:[0-9]+]], i32 2, ptr @.str.1)211// CHECK-NEXT:    [[ARRAYDECAY9:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0212// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB51:[0-9]+]], i32 2, ptr [[ARRAYDECAY9]])213// CHECK-NEXT:    [[TMP13:%.*]] = load ptr, ptr [[STR2]], align 8214// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB53:[0-9]+]], i32 2, ptr [[TMP13]])215// CHECK-NEXT:    [[ARRAYDECAY10:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0216// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB55:[0-9]+]], i32 2, ptr [[ARRAYDECAY10]])217// CHECK-NEXT:    [[TMP14:%.*]] = load ptr, ptr [[STR4]], align 8218// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB57:[0-9]+]], i32 2, ptr [[TMP14]])219// CHECK-NEXT:    [[TMP15:%.*]] = load ptr, ptr [[STR5]], align 8220// CHECK-NEXT:    call void @__kmpc_error(ptr @[[GLOB59:[0-9]+]], i32 2, ptr [[TMP15]])221// CHECK-NEXT:    call void @_Z3foov()222// CHECK-NEXT:    ret i32 10223// OMP51-LABEL: define dso_local void @_Z3foov(224// OMP51-SAME: ) #[[ATTR0:[0-9]+]] {225// OMP51-NEXT:  [[ENTRY:.*:]]226// OMP51-NEXT:    ret void227//228//229// OMP51-LABEL: define dso_local noundef i32 @main(230// OMP51-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR1:[0-9]+]] {231// OMP51-NEXT:  [[ENTRY:.*:]]232// OMP51-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 4233// OMP51-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 8234// OMP51-NEXT:    [[B:%.*]] = alloca i32, align 4235// OMP51-NEXT:    [[C:%.*]] = alloca i32, align 4236// OMP51-NEXT:    [[D:%.*]] = alloca i32, align 4237// OMP51-NEXT:    [[E:%.*]] = alloca i32, align 4238// OMP51-NEXT:    [[F:%.*]] = alloca i32, align 4239// OMP51-NEXT:    [[G:%.*]] = alloca i32, align 4240// OMP51-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1241// OMP51-NEXT:    [[STR2:%.*]] = alloca ptr, align 8242// OMP51-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1243// OMP51-NEXT:    [[STR4:%.*]] = alloca ptr, align 8244// OMP51-NEXT:    [[STR5:%.*]] = alloca ptr, align 8245// OMP51-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4246// OMP51-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8247// OMP51-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4248// OMP51-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4249// OMP51-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const.main.str1, i64 4, i1 false)250// OMP51-NEXT:    store ptr @.str, ptr [[STR2]], align 8251// OMP51-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const.main.str3, i64 4, i1 false)252// OMP51-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0253// OMP51-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8254// OMP51-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0255// OMP51-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8256// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB1:[0-9]+]], i32 2, ptr @.str.1)257// OMP51-NEXT:    [[ARRAYDECAY2:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0258// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB3:[0-9]+]], i32 2, ptr [[ARRAYDECAY2]])259// OMP51-NEXT:    [[TMP1:%.*]] = load ptr, ptr [[STR2]], align 8260// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB5:[0-9]+]], i32 2, ptr [[TMP1]])261// OMP51-NEXT:    [[ARRAYDECAY3:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0262// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB7:[0-9]+]], i32 2, ptr [[ARRAYDECAY3]])263// OMP51-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[STR4]], align 8264// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB9:[0-9]+]], i32 2, ptr [[TMP2]])265// OMP51-NEXT:    [[TMP3:%.*]] = load ptr, ptr [[STR5]], align 8266// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB11:[0-9]+]], i32 2, ptr [[TMP3]])267// OMP51-NEXT:    store i32 2, ptr @_ZZ4mainE1a, align 4268// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB13:[0-9]+]], i32 1, ptr @.str.2)269// OMP51-NEXT:    [[ARRAYDECAY4:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0270// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB15:[0-9]+]], i32 1, ptr [[ARRAYDECAY4]])271// OMP51-NEXT:    [[TMP4:%.*]] = load ptr, ptr [[STR2]], align 8272// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB17:[0-9]+]], i32 1, ptr [[TMP4]])273// OMP51-NEXT:    [[ARRAYDECAY5:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0274// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB19:[0-9]+]], i32 1, ptr [[ARRAYDECAY5]])275// OMP51-NEXT:    [[TMP5:%.*]] = load ptr, ptr [[STR4]], align 8276// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB21:[0-9]+]], i32 1, ptr [[TMP5]])277// OMP51-NEXT:    [[TMP6:%.*]] = load ptr, ptr [[STR5]], align 8278// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB23:[0-9]+]], i32 1, ptr [[TMP6]])279// OMP51-NEXT:    call void @_Z3foov()280// OMP51-NEXT:    [[TMP7:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4281// OMP51-NEXT:    [[TMP8:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8282// OMP51-NEXT:    [[CALL:%.*]] = call noundef i32 @_Z5tmainIiLi10EEiT_PPc(i32 noundef [[TMP7]], ptr noundef [[TMP8]])283// OMP51-NEXT:    ret i32 0284//285//286// OMP51-LABEL: define linkonce_odr noundef i32 @_Z5tmainIiLi10EEiT_PPc(287// OMP51-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR0]] comdat {288// OMP51-NEXT:  [[ENTRY:.*:]]289// OMP51-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 4290// OMP51-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 8291// OMP51-NEXT:    [[B:%.*]] = alloca i32, align 4292// OMP51-NEXT:    [[C:%.*]] = alloca i32, align 4293// OMP51-NEXT:    [[D:%.*]] = alloca i32, align 4294// OMP51-NEXT:    [[E:%.*]] = alloca i32, align 4295// OMP51-NEXT:    [[F:%.*]] = alloca i32, align 4296// OMP51-NEXT:    [[G:%.*]] = alloca i32, align 4297// OMP51-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1298// OMP51-NEXT:    [[STR2:%.*]] = alloca ptr, align 8299// OMP51-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1300// OMP51-NEXT:    [[STR4:%.*]] = alloca ptr, align 8301// OMP51-NEXT:    [[STR5:%.*]] = alloca ptr, align 8302// OMP51-NEXT:    [[B7:%.*]] = alloca i32, align 4303// OMP51-NEXT:    [[C8:%.*]] = alloca i32, align 4304// OMP51-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4305// OMP51-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8306// OMP51-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4307// OMP51-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4308// OMP51-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str1, i64 4, i1 false)309// OMP51-NEXT:    store ptr @.str, ptr [[STR2]], align 8310// OMP51-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str3, i64 4, i1 false)311// OMP51-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0312// OMP51-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8313// OMP51-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0314// OMP51-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8315// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB25:[0-9]+]], i32 2, ptr @.str.3)316// OMP51-NEXT:    [[ARRAYDECAY2:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0317// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB27:[0-9]+]], i32 2, ptr [[ARRAYDECAY2]])318// OMP51-NEXT:    [[TMP1:%.*]] = load ptr, ptr [[STR2]], align 8319// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB29:[0-9]+]], i32 2, ptr [[TMP1]])320// OMP51-NEXT:    [[ARRAYDECAY3:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0321// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB31:[0-9]+]], i32 2, ptr [[ARRAYDECAY3]])322// OMP51-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[STR4]], align 8323// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB33:[0-9]+]], i32 2, ptr [[TMP2]])324// OMP51-NEXT:    [[TMP3:%.*]] = load ptr, ptr [[STR5]], align 8325// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB35:[0-9]+]], i32 2, ptr [[TMP3]])326// OMP51-NEXT:    [[TMP4:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8327// OMP51-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP4]], i64 0328// OMP51-NEXT:    [[TMP5:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8329// OMP51-NEXT:    [[ARRAYIDX4:%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i64 0330// OMP51-NEXT:    [[TMP6:%.*]] = load i8, ptr [[ARRAYIDX4]], align 1331// OMP51-NEXT:    [[CONV:%.*]] = sext i8 [[TMP6]] to i32332// OMP51-NEXT:    store i32 [[CONV]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4333// OMP51-NEXT:    [[TMP7:%.*]] = load i32, ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4334// OMP51-NEXT:    [[INC:%.*]] = add nsw i32 [[TMP7]], 1335// OMP51-NEXT:    store i32 [[INC]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4336// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB37:[0-9]+]], i32 1, ptr @.str.4)337// OMP51-NEXT:    [[ARRAYDECAY5:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0338// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB39:[0-9]+]], i32 1, ptr [[ARRAYDECAY5]])339// OMP51-NEXT:    [[TMP8:%.*]] = load ptr, ptr [[STR2]], align 8340// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB41:[0-9]+]], i32 1, ptr [[TMP8]])341// OMP51-NEXT:    [[ARRAYDECAY6:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0342// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB43:[0-9]+]], i32 1, ptr [[ARRAYDECAY6]])343// OMP51-NEXT:    [[TMP9:%.*]] = load ptr, ptr [[STR4]], align 8344// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB45:[0-9]+]], i32 1, ptr [[TMP9]])345// OMP51-NEXT:    [[TMP10:%.*]] = load ptr, ptr [[STR5]], align 8346// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB47:[0-9]+]], i32 1, ptr [[TMP10]])347// OMP51-NEXT:    store i32 10, ptr [[B7]], align 4348// OMP51-NEXT:    store i32 100, ptr [[C8]], align 4349// OMP51-NEXT:    [[TMP11:%.*]] = load i32, ptr [[B7]], align 4350// OMP51-NEXT:    [[TMP12:%.*]] = load i32, ptr [[C8]], align 4351// OMP51-NEXT:    [[ADD:%.*]] = add nsw i32 [[TMP11]], [[TMP12]]352// OMP51-NEXT:    store i32 [[ADD]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4353// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB49:[0-9]+]], i32 2, ptr @.str.1)354// OMP51-NEXT:    [[ARRAYDECAY9:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0355// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB51:[0-9]+]], i32 2, ptr [[ARRAYDECAY9]])356// OMP51-NEXT:    [[TMP13:%.*]] = load ptr, ptr [[STR2]], align 8357// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB53:[0-9]+]], i32 2, ptr [[TMP13]])358// OMP51-NEXT:    [[ARRAYDECAY10:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0359// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB55:[0-9]+]], i32 2, ptr [[ARRAYDECAY10]])360// OMP51-NEXT:    [[TMP14:%.*]] = load ptr, ptr [[STR4]], align 8361// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB57:[0-9]+]], i32 2, ptr [[TMP14]])362// OMP51-NEXT:    [[TMP15:%.*]] = load ptr, ptr [[STR5]], align 8363// OMP51-NEXT:    call void @__kmpc_error(ptr @[[GLOB59:[0-9]+]], i32 2, ptr [[TMP15]])364// OMP51-NEXT:    call void @_Z3foov()365// OMP51-NEXT:    ret i32 10366//367//368// OMP60-LABEL: define dso_local void @_Z3foov(369// OMP60-SAME: ) #[[ATTR0:[0-9]+]] {370// OMP60-NEXT:  [[ENTRY:.*:]]371// OMP60-NEXT:    ret void372//373//374// OMP60-LABEL: define dso_local noundef i32 @main(375// OMP60-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR1:[0-9]+]] {376// OMP60-NEXT:  [[ENTRY:.*:]]377// OMP60-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 4378// OMP60-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 8379// OMP60-NEXT:    [[B:%.*]] = alloca i32, align 4380// OMP60-NEXT:    [[C:%.*]] = alloca i32, align 4381// OMP60-NEXT:    [[D:%.*]] = alloca i32, align 4382// OMP60-NEXT:    [[E:%.*]] = alloca i32, align 4383// OMP60-NEXT:    [[F:%.*]] = alloca i32, align 4384// OMP60-NEXT:    [[G:%.*]] = alloca i32, align 4385// OMP60-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1386// OMP60-NEXT:    [[STR2:%.*]] = alloca ptr, align 8387// OMP60-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1388// OMP60-NEXT:    [[STR4:%.*]] = alloca ptr, align 8389// OMP60-NEXT:    [[STR5:%.*]] = alloca ptr, align 8390// OMP60-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4391// OMP60-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8392// OMP60-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4393// OMP60-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4394// OMP60-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const.main.str1, i64 4, i1 false)395// OMP60-NEXT:    store ptr @.str, ptr [[STR2]], align 8396// OMP60-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const.main.str3, i64 4, i1 false)397// OMP60-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0398// OMP60-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8399// OMP60-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0400// OMP60-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8401// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB1:[0-9]+]], i32 2, ptr @.str.1)402// OMP60-NEXT:    [[ARRAYDECAY2:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0403// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB3:[0-9]+]], i32 2, ptr [[ARRAYDECAY2]])404// OMP60-NEXT:    [[TMP1:%.*]] = load ptr, ptr [[STR2]], align 8405// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB5:[0-9]+]], i32 2, ptr [[TMP1]])406// OMP60-NEXT:    [[ARRAYDECAY3:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0407// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB7:[0-9]+]], i32 2, ptr [[ARRAYDECAY3]])408// OMP60-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[STR4]], align 8409// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB9:[0-9]+]], i32 2, ptr [[TMP2]])410// OMP60-NEXT:    [[TMP3:%.*]] = load ptr, ptr [[STR5]], align 8411// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB11:[0-9]+]], i32 2, ptr [[TMP3]])412// OMP60-NEXT:    store i32 2, ptr @_ZZ4mainE1a, align 4413// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB13:[0-9]+]], i32 1, ptr @.str.2)414// OMP60-NEXT:    [[ARRAYDECAY4:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0415// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB15:[0-9]+]], i32 1, ptr [[ARRAYDECAY4]])416// OMP60-NEXT:    [[TMP4:%.*]] = load ptr, ptr [[STR2]], align 8417// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB17:[0-9]+]], i32 1, ptr [[TMP4]])418// OMP60-NEXT:    [[ARRAYDECAY5:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0419// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB19:[0-9]+]], i32 1, ptr [[ARRAYDECAY5]])420// OMP60-NEXT:    [[TMP5:%.*]] = load ptr, ptr [[STR4]], align 8421// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB21:[0-9]+]], i32 1, ptr [[TMP5]])422// OMP60-NEXT:    [[TMP6:%.*]] = load ptr, ptr [[STR5]], align 8423// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB23:[0-9]+]], i32 1, ptr [[TMP6]])424// OMP60-NEXT:    call void @_Z3foov()425// OMP60-NEXT:    [[TMP7:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4426// OMP60-NEXT:    [[TMP8:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8427// OMP60-NEXT:    [[CALL:%.*]] = call noundef i32 @_Z5tmainIiLi10EEiT_PPc(i32 noundef [[TMP7]], ptr noundef [[TMP8]])428// OMP60-NEXT:    ret i32 0429//430//431// OMP60-LABEL: define linkonce_odr noundef i32 @_Z5tmainIiLi10EEiT_PPc(432// OMP60-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR0]] comdat {433// OMP60-NEXT:  [[ENTRY:.*:]]434// OMP60-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 4435// OMP60-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 8436// OMP60-NEXT:    [[B:%.*]] = alloca i32, align 4437// OMP60-NEXT:    [[C:%.*]] = alloca i32, align 4438// OMP60-NEXT:    [[D:%.*]] = alloca i32, align 4439// OMP60-NEXT:    [[E:%.*]] = alloca i32, align 4440// OMP60-NEXT:    [[F:%.*]] = alloca i32, align 4441// OMP60-NEXT:    [[G:%.*]] = alloca i32, align 4442// OMP60-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1443// OMP60-NEXT:    [[STR2:%.*]] = alloca ptr, align 8444// OMP60-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1445// OMP60-NEXT:    [[STR4:%.*]] = alloca ptr, align 8446// OMP60-NEXT:    [[STR5:%.*]] = alloca ptr, align 8447// OMP60-NEXT:    [[B7:%.*]] = alloca i32, align 4448// OMP60-NEXT:    [[C8:%.*]] = alloca i32, align 4449// OMP60-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4450// OMP60-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8451// OMP60-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4452// OMP60-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4453// OMP60-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str1, i64 4, i1 false)454// OMP60-NEXT:    store ptr @.str, ptr [[STR2]], align 8455// OMP60-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str3, i64 4, i1 false)456// OMP60-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0457// OMP60-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8458// OMP60-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0459// OMP60-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8460// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB25:[0-9]+]], i32 2, ptr @.str.3)461// OMP60-NEXT:    [[ARRAYDECAY2:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0462// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB27:[0-9]+]], i32 2, ptr [[ARRAYDECAY2]])463// OMP60-NEXT:    [[TMP1:%.*]] = load ptr, ptr [[STR2]], align 8464// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB29:[0-9]+]], i32 2, ptr [[TMP1]])465// OMP60-NEXT:    [[ARRAYDECAY3:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0466// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB31:[0-9]+]], i32 2, ptr [[ARRAYDECAY3]])467// OMP60-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[STR4]], align 8468// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB33:[0-9]+]], i32 2, ptr [[TMP2]])469// OMP60-NEXT:    [[TMP3:%.*]] = load ptr, ptr [[STR5]], align 8470// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB35:[0-9]+]], i32 2, ptr [[TMP3]])471// OMP60-NEXT:    [[TMP4:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8472// OMP60-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP4]], i64 0473// OMP60-NEXT:    [[TMP5:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8474// OMP60-NEXT:    [[ARRAYIDX4:%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i64 0475// OMP60-NEXT:    [[TMP6:%.*]] = load i8, ptr [[ARRAYIDX4]], align 1476// OMP60-NEXT:    [[CONV:%.*]] = sext i8 [[TMP6]] to i32477// OMP60-NEXT:    store i32 [[CONV]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4478// OMP60-NEXT:    [[TMP7:%.*]] = load i32, ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4479// OMP60-NEXT:    [[INC:%.*]] = add nsw i32 [[TMP7]], 1480// OMP60-NEXT:    store i32 [[INC]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4481// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB37:[0-9]+]], i32 1, ptr @.str.4)482// OMP60-NEXT:    [[ARRAYDECAY5:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0483// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB39:[0-9]+]], i32 1, ptr [[ARRAYDECAY5]])484// OMP60-NEXT:    [[TMP8:%.*]] = load ptr, ptr [[STR2]], align 8485// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB41:[0-9]+]], i32 1, ptr [[TMP8]])486// OMP60-NEXT:    [[ARRAYDECAY6:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0487// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB43:[0-9]+]], i32 1, ptr [[ARRAYDECAY6]])488// OMP60-NEXT:    [[TMP9:%.*]] = load ptr, ptr [[STR4]], align 8489// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB45:[0-9]+]], i32 1, ptr [[TMP9]])490// OMP60-NEXT:    [[TMP10:%.*]] = load ptr, ptr [[STR5]], align 8491// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB47:[0-9]+]], i32 1, ptr [[TMP10]])492// OMP60-NEXT:    store i32 10, ptr [[B7]], align 4493// OMP60-NEXT:    store i32 100, ptr [[C8]], align 4494// OMP60-NEXT:    [[TMP11:%.*]] = load i32, ptr [[B7]], align 4495// OMP60-NEXT:    [[TMP12:%.*]] = load i32, ptr [[C8]], align 4496// OMP60-NEXT:    [[ADD:%.*]] = add nsw i32 [[TMP11]], [[TMP12]]497// OMP60-NEXT:    store i32 [[ADD]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4498// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB49:[0-9]+]], i32 2, ptr @.str.1)499// OMP60-NEXT:    [[ARRAYDECAY9:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR1]], i64 0, i64 0500// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB51:[0-9]+]], i32 2, ptr [[ARRAYDECAY9]])501// OMP60-NEXT:    [[TMP13:%.*]] = load ptr, ptr [[STR2]], align 8502// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB53:[0-9]+]], i32 2, ptr [[TMP13]])503// OMP60-NEXT:    [[ARRAYDECAY10:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0504// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB55:[0-9]+]], i32 2, ptr [[ARRAYDECAY10]])505// OMP60-NEXT:    [[TMP14:%.*]] = load ptr, ptr [[STR4]], align 8506// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB57:[0-9]+]], i32 2, ptr [[TMP14]])507// OMP60-NEXT:    [[TMP15:%.*]] = load ptr, ptr [[STR5]], align 8508// OMP60-NEXT:    call void @__kmpc_error(ptr @[[GLOB59:[0-9]+]], i32 2, ptr [[TMP15]])509// OMP60-NEXT:    call void @_Z3foov()510// OMP60-NEXT:    ret i32 10511//512//513// SIMD-LABEL: define dso_local void @_Z3foov(514// SIMD-SAME: ) #[[ATTR0:[0-9]+]] !dbg [[DBG29:![0-9]+]] {515// SIMD-NEXT:  [[ENTRY:.*:]]516// SIMD-NEXT:    ret void, !dbg [[DBG32:![0-9]+]]517//518//519// SIMD-LABEL: define dso_local noundef i32 @main(520// SIMD-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR1:[0-9]+]] !dbg [[DBG2:![0-9]+]] {521// SIMD-NEXT:  [[ENTRY:.*:]]522// SIMD-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 4523// SIMD-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 8524// SIMD-NEXT:    [[B:%.*]] = alloca i32, align 4525// SIMD-NEXT:    [[C:%.*]] = alloca i32, align 4526// SIMD-NEXT:    [[D:%.*]] = alloca i32, align 4527// SIMD-NEXT:    [[E:%.*]] = alloca i32, align 4528// SIMD-NEXT:    [[F:%.*]] = alloca i32, align 4529// SIMD-NEXT:    [[G:%.*]] = alloca i32, align 4530// SIMD-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1531// SIMD-NEXT:    [[STR2:%.*]] = alloca ptr, align 8532// SIMD-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1533// SIMD-NEXT:    [[STR4:%.*]] = alloca ptr, align 8534// SIMD-NEXT:    [[STR5:%.*]] = alloca ptr, align 8535// SIMD-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4536// SIMD-NEXT:      #dbg_declare(ptr [[ARGC_ADDR]], [[META33:![0-9]+]], !DIExpression(), [[META34:![0-9]+]])537// SIMD-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8538// SIMD-NEXT:      #dbg_declare(ptr [[ARGV_ADDR]], [[META35:![0-9]+]], !DIExpression(), [[META36:![0-9]+]])539// SIMD-NEXT:      #dbg_declare(ptr [[B]], [[META37:![0-9]+]], !DIExpression(), [[META38:![0-9]+]])540// SIMD-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4, !dbg [[DBG39:![0-9]+]]541// SIMD-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4, !dbg [[META38]]542// SIMD-NEXT:      #dbg_declare(ptr [[C]], [[META40:![0-9]+]], !DIExpression(), [[META41:![0-9]+]])543// SIMD-NEXT:      #dbg_declare(ptr [[D]], [[META42:![0-9]+]], !DIExpression(), [[META43:![0-9]+]])544// SIMD-NEXT:      #dbg_declare(ptr [[E]], [[META44:![0-9]+]], !DIExpression(), [[META45:![0-9]+]])545// SIMD-NEXT:      #dbg_declare(ptr [[F]], [[META46:![0-9]+]], !DIExpression(), [[META47:![0-9]+]])546// SIMD-NEXT:      #dbg_declare(ptr [[G]], [[META48:![0-9]+]], !DIExpression(), [[META49:![0-9]+]])547// SIMD-NEXT:      #dbg_declare(ptr [[STR1]], [[META50:![0-9]+]], !DIExpression(), [[META51:![0-9]+]])548// SIMD-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const.main.str1, i64 4, i1 false), !dbg [[META51]]549// SIMD-NEXT:      #dbg_declare(ptr [[STR2]], [[META52:![0-9]+]], !DIExpression(), [[META54:![0-9]+]])550// SIMD-NEXT:    store ptr @.str, ptr [[STR2]], align 8, !dbg [[META54]]551// SIMD-NEXT:      #dbg_declare(ptr [[STR3]], [[META55:![0-9]+]], !DIExpression(), [[META57:![0-9]+]])552// SIMD-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const.main.str3, i64 4, i1 false), !dbg [[META57]]553// SIMD-NEXT:      #dbg_declare(ptr [[STR4]], [[META58:![0-9]+]], !DIExpression(), [[META59:![0-9]+]])554// SIMD-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0, !dbg [[DBG60:![0-9]+]]555// SIMD-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8, !dbg [[META59]]556// SIMD-NEXT:      #dbg_declare(ptr [[STR5]], [[META61:![0-9]+]], !DIExpression(), [[META63:![0-9]+]])557// SIMD-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0, !dbg [[DBG64:![0-9]+]]558// SIMD-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8, !dbg [[META63]]559// SIMD-NEXT:    store i32 2, ptr @_ZZ4mainE1a, align 4, !dbg [[DBG65:![0-9]+]]560// SIMD-NEXT:    call void @_Z3foov(), !dbg [[DBG66:![0-9]+]]561// SIMD-NEXT:    [[TMP1:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4, !dbg [[DBG67:![0-9]+]]562// SIMD-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8, !dbg [[DBG68:![0-9]+]]563// SIMD-NEXT:    [[CALL:%.*]] = call noundef i32 @_Z5tmainIiLi10EEiT_PPc(i32 noundef [[TMP1]], ptr noundef [[TMP2]]), !dbg [[DBG69:![0-9]+]]564// SIMD-NEXT:    ret i32 0, !dbg [[DBG70:![0-9]+]]565//566//567// SIMD-LABEL: define linkonce_odr noundef i32 @_Z5tmainIiLi10EEiT_PPc(568// SIMD-SAME: i32 noundef [[ARGC:%.*]], ptr noundef [[ARGV:%.*]]) #[[ATTR0]] comdat !dbg [[DBG21:![0-9]+]] {569// SIMD-NEXT:  [[ENTRY:.*:]]570// SIMD-NEXT:    [[ARGC_ADDR:%.*]] = alloca i32, align 4571// SIMD-NEXT:    [[ARGV_ADDR:%.*]] = alloca ptr, align 8572// SIMD-NEXT:    [[B:%.*]] = alloca i32, align 4573// SIMD-NEXT:    [[C:%.*]] = alloca i32, align 4574// SIMD-NEXT:    [[D:%.*]] = alloca i32, align 4575// SIMD-NEXT:    [[E:%.*]] = alloca i32, align 4576// SIMD-NEXT:    [[F:%.*]] = alloca i32, align 4577// SIMD-NEXT:    [[G:%.*]] = alloca i32, align 4578// SIMD-NEXT:    [[STR1:%.*]] = alloca [4 x i8], align 1579// SIMD-NEXT:    [[STR2:%.*]] = alloca ptr, align 8580// SIMD-NEXT:    [[STR3:%.*]] = alloca [4 x i8], align 1581// SIMD-NEXT:    [[STR4:%.*]] = alloca ptr, align 8582// SIMD-NEXT:    [[STR5:%.*]] = alloca ptr, align 8583// SIMD-NEXT:    [[B3:%.*]] = alloca i32, align 4584// SIMD-NEXT:    [[C4:%.*]] = alloca i32, align 4585// SIMD-NEXT:    store i32 [[ARGC]], ptr [[ARGC_ADDR]], align 4586// SIMD-NEXT:      #dbg_declare(ptr [[ARGC_ADDR]], [[META71:![0-9]+]], !DIExpression(), [[META72:![0-9]+]])587// SIMD-NEXT:    store ptr [[ARGV]], ptr [[ARGV_ADDR]], align 8588// SIMD-NEXT:      #dbg_declare(ptr [[ARGV_ADDR]], [[META73:![0-9]+]], !DIExpression(), [[META74:![0-9]+]])589// SIMD-NEXT:      #dbg_declare(ptr [[B]], [[META75:![0-9]+]], !DIExpression(), [[META76:![0-9]+]])590// SIMD-NEXT:    [[TMP0:%.*]] = load i32, ptr [[ARGC_ADDR]], align 4, !dbg [[DBG77:![0-9]+]]591// SIMD-NEXT:    store i32 [[TMP0]], ptr [[B]], align 4, !dbg [[META76]]592// SIMD-NEXT:      #dbg_declare(ptr [[C]], [[META78:![0-9]+]], !DIExpression(), [[META79:![0-9]+]])593// SIMD-NEXT:      #dbg_declare(ptr [[D]], [[META80:![0-9]+]], !DIExpression(), [[META81:![0-9]+]])594// SIMD-NEXT:      #dbg_declare(ptr [[E]], [[META82:![0-9]+]], !DIExpression(), [[META83:![0-9]+]])595// SIMD-NEXT:      #dbg_declare(ptr [[F]], [[META84:![0-9]+]], !DIExpression(), [[META85:![0-9]+]])596// SIMD-NEXT:      #dbg_declare(ptr [[G]], [[META86:![0-9]+]], !DIExpression(), [[META87:![0-9]+]])597// SIMD-NEXT:      #dbg_declare(ptr [[STR1]], [[META88:![0-9]+]], !DIExpression(), [[META89:![0-9]+]])598// SIMD-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR1]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str1, i64 4, i1 false), !dbg [[META89]]599// SIMD-NEXT:      #dbg_declare(ptr [[STR2]], [[META90:![0-9]+]], !DIExpression(), [[META91:![0-9]+]])600// SIMD-NEXT:    store ptr @.str, ptr [[STR2]], align 8, !dbg [[META91]]601// SIMD-NEXT:      #dbg_declare(ptr [[STR3]], [[META92:![0-9]+]], !DIExpression(), [[META93:![0-9]+]])602// SIMD-NEXT:    call void @llvm.memcpy.p0.p0.i64(ptr align 1 [[STR3]], ptr align 1 @__const._Z5tmainIiLi10EEiT_PPc.str3, i64 4, i1 false), !dbg [[META93]]603// SIMD-NEXT:      #dbg_declare(ptr [[STR4]], [[META94:![0-9]+]], !DIExpression(), [[META95:![0-9]+]])604// SIMD-NEXT:    [[ARRAYDECAY:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0, !dbg [[DBG96:![0-9]+]]605// SIMD-NEXT:    store ptr [[ARRAYDECAY]], ptr [[STR4]], align 8, !dbg [[META95]]606// SIMD-NEXT:      #dbg_declare(ptr [[STR5]], [[META97:![0-9]+]], !DIExpression(), [[META98:![0-9]+]])607// SIMD-NEXT:    [[ARRAYDECAY1:%.*]] = getelementptr inbounds [4 x i8], ptr [[STR3]], i64 0, i64 0, !dbg [[DBG99:![0-9]+]]608// SIMD-NEXT:    store ptr [[ARRAYDECAY1]], ptr [[STR5]], align 8, !dbg [[META98]]609// SIMD-NEXT:    [[TMP1:%.*]] = load ptr, ptr [[ARGV_ADDR]], align 8, !dbg [[DBG100:![0-9]+]]610// SIMD-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[TMP1]], i64 0, !dbg [[DBG100]]611// SIMD-NEXT:    [[TMP2:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8, !dbg [[DBG100]]612// SIMD-NEXT:    [[ARRAYIDX2:%.*]] = getelementptr inbounds i8, ptr [[TMP2]], i64 0, !dbg [[DBG100]]613// SIMD-NEXT:    [[TMP3:%.*]] = load i8, ptr [[ARRAYIDX2]], align 1, !dbg [[DBG100]]614// SIMD-NEXT:    [[CONV:%.*]] = sext i8 [[TMP3]] to i32, !dbg [[DBG100]]615// SIMD-NEXT:    store i32 [[CONV]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4, !dbg [[DBG101:![0-9]+]]616// SIMD-NEXT:    [[TMP4:%.*]] = load i32, ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4, !dbg [[DBG102:![0-9]+]]617// SIMD-NEXT:    [[INC:%.*]] = add nsw i32 [[TMP4]], 1, !dbg [[DBG102]]618// SIMD-NEXT:    store i32 [[INC]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4, !dbg [[DBG102]]619// SIMD-NEXT:      #dbg_declare(ptr [[B3]], [[META103:![0-9]+]], !DIExpression(), [[META105:![0-9]+]])620// SIMD-NEXT:    store i32 10, ptr [[B3]], align 4, !dbg [[META105]]621// SIMD-NEXT:      #dbg_declare(ptr [[C4]], [[META106:![0-9]+]], !DIExpression(), [[META107:![0-9]+]])622// SIMD-NEXT:    store i32 100, ptr [[C4]], align 4, !dbg [[META107]]623// SIMD-NEXT:    [[TMP5:%.*]] = load i32, ptr [[B3]], align 4, !dbg [[DBG108:![0-9]+]]624// SIMD-NEXT:    [[TMP6:%.*]] = load i32, ptr [[C4]], align 4, !dbg [[DBG109:![0-9]+]]625// SIMD-NEXT:    [[ADD:%.*]] = add nsw i32 [[TMP5]], [[TMP6]], !dbg [[DBG110:![0-9]+]]626// SIMD-NEXT:    store i32 [[ADD]], ptr @_ZZ5tmainIiLi10EEiT_PPcE1a, align 4, !dbg [[DBG111:![0-9]+]]627// SIMD-NEXT:    call void @_Z3foov(), !dbg [[DBG112:![0-9]+]]628// SIMD-NEXT:    ret i32 10, !dbg [[DBG113:![0-9]+]]629//630//.631// SIMD: [[META0:![0-9]+]] = !DIGlobalVariableExpression(var: [[META1:![0-9]+]], expr: !DIExpression())632// SIMD: [[META1]] = distinct !DIGlobalVariable(name: "a", scope: [[DBG2]], file: [[META3:![0-9]+]], line: 61, type: [[META6:![0-9]+]], isLocal: true, isDefinition: true)633// SIMD: [[DBG2]] = distinct !DISubprogram(name: "main", scope: [[META3]], file: [[META3]], line: 59, type: [[META4:![0-9]+]], scopeLine: 59, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: [[META10:![0-9]+]], retainedNodes: [[META22:![0-9]+]])634// SIMD: [[META3]] = !DIFile(filename: "{{.*}}error_codegen.cpp", directory: {{.*}})635// SIMD: [[META4]] = !DISubroutineType(types: [[META5:![0-9]+]])636// SIMD: [[META5]] = !{[[META6]], [[META6]], [[META7:![0-9]+]]}637// SIMD: [[META6]] = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)638// SIMD: [[META7]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: [[META8:![0-9]+]], size: 64)639// SIMD: [[META8]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: [[META9:![0-9]+]], size: 64)640// SIMD: [[META9]] = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char)641// SIMD: [[META10]] = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_11, file: [[META11:![0-9]+]], producer: "{{.*}}clang version {{.*}}", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, globals: [[META12:![0-9]+]], splitDebugInlining: false, nameTableKind: None)642// SIMD: [[META11]] = !DIFile(filename: "{{.*}}<stdin>", directory: {{.*}})643// SIMD: [[META12]] = !{[[META0]], [[META13:![0-9]+]], [[META19:![0-9]+]]}644// SIMD: [[META13]] = !DIGlobalVariableExpression(var: [[META14:![0-9]+]], expr: !DIExpression())645// SIMD: [[META14]] = distinct !DIGlobalVariable(scope: null, file: [[META3]], line: 63, type: [[META15:![0-9]+]], isLocal: true, isDefinition: true)646// SIMD: [[META15]] = !DICompositeType(tag: DW_TAG_array_type, baseType: [[META16:![0-9]+]], size: 32, elements: [[META17:![0-9]+]])647// SIMD: [[META16]] = !DIDerivedType(tag: DW_TAG_const_type, baseType: [[META9]])648// SIMD: [[META17]] = !{[[META18:![0-9]+]]}649// SIMD: [[META18]] = !DISubrange(count: 4)650// SIMD: [[META19]] = !DIGlobalVariableExpression(var: [[META20:![0-9]+]], expr: !DIExpression())651// SIMD: [[META20]] = distinct !DIGlobalVariable(name: "a", scope: [[DBG21]], file: [[META3]], line: 22, type: [[META6]], isLocal: false, isDefinition: true)652// SIMD: [[DBG21]] = distinct !DISubprogram(name: "tmain<int, 10>", linkageName: "_Z5tmainIiLi10EEiT_PPc", scope: [[META3]], file: [[META3]], line: 20, type: [[META4]], scopeLine: 20, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: [[META10]], templateParams: [[META23:![0-9]+]], retainedNodes: [[META22]])653// SIMD: [[META22]] = !{}654// SIMD: [[META23]] = !{[[META24:![0-9]+]], [[META25:![0-9]+]]}655// SIMD: [[META24]] = !DITemplateTypeParameter(name: "T", type: [[META6]])656// SIMD: [[META25]] = !DITemplateValueParameter(name: "N", type: [[META6]], value: i32 10)657// SIMD: [[DBG29]] = distinct !DISubprogram(name: "foo", linkageName: "_Z3foov", scope: [[META3]], file: [[META3]], line: 17, type: [[META30:![0-9]+]], scopeLine: 17, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: [[META10]])658// SIMD: [[META30]] = !DISubroutineType(types: [[META31:![0-9]+]])659// SIMD: [[META31]] = !{null}660// SIMD: [[DBG32]] = !DILocation(line: 17, column: 13, scope: [[DBG29]])661// SIMD: [[META33]] = !DILocalVariable(name: "argc", arg: 1, scope: [[DBG2]], file: [[META3]], line: 59, type: [[META6]])662// SIMD: [[META34]] = !DILocation(line: 59, column: 15, scope: [[DBG2]])663// SIMD: [[META35]] = !DILocalVariable(name: "argv", arg: 2, scope: [[DBG2]], file: [[META3]], line: 59, type: [[META7]])664// SIMD: [[META36]] = !DILocation(line: 59, column: 28, scope: [[DBG2]])665// SIMD: [[META37]] = !DILocalVariable(name: "b", scope: [[DBG2]], file: [[META3]], line: 60, type: [[META6]])666// SIMD: [[META38]] = !DILocation(line: 60, column: 7, scope: [[DBG2]])667// SIMD: [[DBG39]] = !DILocation(line: 60, column: 11, scope: [[DBG2]])668// SIMD: [[META40]] = !DILocalVariable(name: "c", scope: [[DBG2]], file: [[META3]], line: 60, type: [[META6]])669// SIMD: [[META41]] = !DILocation(line: 60, column: 17, scope: [[DBG2]])670// SIMD: [[META42]] = !DILocalVariable(name: "d", scope: [[DBG2]], file: [[META3]], line: 60, type: [[META6]])671// SIMD: [[META43]] = !DILocation(line: 60, column: 20, scope: [[DBG2]])672// SIMD: [[META44]] = !DILocalVariable(name: "e", scope: [[DBG2]], file: [[META3]], line: 60, type: [[META6]])673// SIMD: [[META45]] = !DILocation(line: 60, column: 23, scope: [[DBG2]])674// SIMD: [[META46]] = !DILocalVariable(name: "f", scope: [[DBG2]], file: [[META3]], line: 60, type: [[META6]])675// SIMD: [[META47]] = !DILocation(line: 60, column: 26, scope: [[DBG2]])676// SIMD: [[META48]] = !DILocalVariable(name: "g", scope: [[DBG2]], file: [[META3]], line: 60, type: [[META6]])677// SIMD: [[META49]] = !DILocation(line: 60, column: 29, scope: [[DBG2]])678// SIMD: [[META50]] = !DILocalVariable(name: "str1", scope: [[DBG2]], file: [[META3]], line: 62, type: [[META15]])679// SIMD: [[META51]] = !DILocation(line: 62, column: 14, scope: [[DBG2]])680// SIMD: [[META52]] = !DILocalVariable(name: "str2", scope: [[DBG2]], file: [[META3]], line: 63, type: [[META53:![0-9]+]])681// SIMD: [[META53]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: [[META16]], size: 64)682// SIMD: [[META54]] = !DILocation(line: 63, column: 15, scope: [[DBG2]])683// SIMD: [[META55]] = !DILocalVariable(name: "str3", scope: [[DBG2]], file: [[META3]], line: 64, type: [[META56:![0-9]+]])684// SIMD: [[META56]] = !DICompositeType(tag: DW_TAG_array_type, baseType: [[META9]], size: 32, elements: [[META17]])685// SIMD: [[META57]] = !DILocation(line: 64, column: 8, scope: [[DBG2]])686// SIMD: [[META58]] = !DILocalVariable(name: "str4", scope: [[DBG2]], file: [[META3]], line: 65, type: [[META8]])687// SIMD: [[META59]] = !DILocation(line: 65, column: 9, scope: [[DBG2]])688// SIMD: [[DBG60]] = !DILocation(line: 65, column: 16, scope: [[DBG2]])689// SIMD: [[META61]] = !DILocalVariable(name: "str5", scope: [[DBG2]], file: [[META3]], line: 66, type: [[META62:![0-9]+]])690// SIMD: [[META62]] = !DIDerivedType(tag: DW_TAG_const_type, baseType: [[META8]])691// SIMD: [[META63]] = !DILocation(line: 66, column: 16, scope: [[DBG2]])692// SIMD: [[DBG64]] = !DILocation(line: 66, column: 23, scope: [[DBG2]])693// SIMD: [[DBG65]] = !DILocation(line: 73, column: 5, scope: [[DBG2]])694// SIMD: [[DBG66]] = !DILocation(line: 80, column: 3, scope: [[DBG2]])695// SIMD: [[DBG67]] = !DILocation(line: 81, column: 18, scope: [[DBG2]])696// SIMD: [[DBG68]] = !DILocation(line: 81, column: 24, scope: [[DBG2]])697// SIMD: [[DBG69]] = !DILocation(line: 81, column: 3, scope: [[DBG2]])698// SIMD: [[DBG70]] = !DILocation(line: 82, column: 1, scope: [[DBG2]])699// SIMD: [[META71]] = !DILocalVariable(name: "argc", arg: 1, scope: [[DBG21]], file: [[META3]], line: 20, type: [[META6]])700// SIMD: [[META72]] = !DILocation(line: 20, column: 13, scope: [[DBG21]])701// SIMD: [[META73]] = !DILocalVariable(name: "argv", arg: 2, scope: [[DBG21]], file: [[META3]], line: 20, type: [[META7]])702// SIMD: [[META74]] = !DILocation(line: 20, column: 26, scope: [[DBG21]])703// SIMD: [[META75]] = !DILocalVariable(name: "b", scope: [[DBG21]], file: [[META3]], line: 21, type: [[META6]])704// SIMD: [[META76]] = !DILocation(line: 21, column: 5, scope: [[DBG21]])705// SIMD: [[DBG77]] = !DILocation(line: 21, column: 9, scope: [[DBG21]])706// SIMD: [[META78]] = !DILocalVariable(name: "c", scope: [[DBG21]], file: [[META3]], line: 21, type: [[META6]])707// SIMD: [[META79]] = !DILocation(line: 21, column: 15, scope: [[DBG21]])708// SIMD: [[META80]] = !DILocalVariable(name: "d", scope: [[DBG21]], file: [[META3]], line: 21, type: [[META6]])709// SIMD: [[META81]] = !DILocation(line: 21, column: 18, scope: [[DBG21]])710// SIMD: [[META82]] = !DILocalVariable(name: "e", scope: [[DBG21]], file: [[META3]], line: 21, type: [[META6]])711// SIMD: [[META83]] = !DILocation(line: 21, column: 21, scope: [[DBG21]])712// SIMD: [[META84]] = !DILocalVariable(name: "f", scope: [[DBG21]], file: [[META3]], line: 21, type: [[META6]])713// SIMD: [[META85]] = !DILocation(line: 21, column: 24, scope: [[DBG21]])714// SIMD: [[META86]] = !DILocalVariable(name: "g", scope: [[DBG21]], file: [[META3]], line: 21, type: [[META6]])715// SIMD: [[META87]] = !DILocation(line: 21, column: 27, scope: [[DBG21]])716// SIMD: [[META88]] = !DILocalVariable(name: "str1", scope: [[DBG21]], file: [[META3]], line: 23, type: [[META15]])717// SIMD: [[META89]] = !DILocation(line: 23, column: 14, scope: [[DBG21]])718// SIMD: [[META90]] = !DILocalVariable(name: "str2", scope: [[DBG21]], file: [[META3]], line: 24, type: [[META53]])719// SIMD: [[META91]] = !DILocation(line: 24, column: 15, scope: [[DBG21]])720// SIMD: [[META92]] = !DILocalVariable(name: "str3", scope: [[DBG21]], file: [[META3]], line: 25, type: [[META56]])721// SIMD: [[META93]] = !DILocation(line: 25, column: 8, scope: [[DBG21]])722// SIMD: [[META94]] = !DILocalVariable(name: "str4", scope: [[DBG21]], file: [[META3]], line: 26, type: [[META8]])723// SIMD: [[META95]] = !DILocation(line: 26, column: 9, scope: [[DBG21]])724// SIMD: [[DBG96]] = !DILocation(line: 26, column: 16, scope: [[DBG21]])725// SIMD: [[META97]] = !DILocalVariable(name: "str5", scope: [[DBG21]], file: [[META3]], line: 27, type: [[META62]])726// SIMD: [[META98]] = !DILocation(line: 27, column: 16, scope: [[DBG21]])727// SIMD: [[DBG99]] = !DILocation(line: 27, column: 23, scope: [[DBG21]])728// SIMD: [[DBG100]] = !DILocation(line: 34, column: 7, scope: [[DBG21]])729// SIMD: [[DBG101]] = !DILocation(line: 34, column: 5, scope: [[DBG21]])730// SIMD: [[DBG102]] = !DILocation(line: 35, column: 3, scope: [[DBG21]])731// SIMD: [[META103]] = !DILocalVariable(name: "b", scope: [[META104:![0-9]+]], file: [[META3]], line: 43, type: [[META6]])732// SIMD: [[META104]] = distinct !DILexicalBlock(scope: [[DBG21]], file: [[META3]], line: 42, column: 3)733// SIMD: [[META105]] = !DILocation(line: 43, column: 9, scope: [[META104]])734// SIMD: [[META106]] = !DILocalVariable(name: "c", scope: [[META104]], file: [[META3]], line: 44, type: [[META6]])735// SIMD: [[META107]] = !DILocation(line: 44, column: 7, scope: [[META104]])736// SIMD: [[DBG108]] = !DILocation(line: 45, column: 9, scope: [[META104]])737// SIMD: [[DBG109]] = !DILocation(line: 45, column: 13, scope: [[META104]])738// SIMD: [[DBG110]] = !DILocation(line: 45, column: 11, scope: [[META104]])739// SIMD: [[DBG111]] = !DILocation(line: 45, column: 7, scope: [[META104]])740// SIMD: [[DBG112]] = !DILocation(line: 53, column: 3, scope: [[DBG21]])741// SIMD: [[DBG113]] = !DILocation(line: 54, column: 1, scope: [[DBG21]])742//.743