================ @@ -0,0 +1,43 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5 +// The test may fail as time out on windows +// REQUIRES: system-linux + +// RUN: %clang -S -O3 -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,NoNewStructPathTBAA +// RUN: %clang -S -O3 -Xclang -new-struct-path-tbaa -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,NewStructPathTBAA + ---------------- zahiraam wrote:
@vfdff I have uploaded your patch and ran the LIT test on windows. It's failing mostly because the //CHECK lines you have in your LIT test are Linux's output. What you are interested by is the tbaa metada at the call of `expf` right? So it's enough to just put that check line. This test is passing for me on Windows (**I didn't test it on Linu**x. Can you do that?): `// RUN: %clang_cc1 -fmath-errno -O3 -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,NoNewStructPathTBAA` `// RUN: %clang_cc1 -fmath-errno -O3 -new-struct-path-tbaa -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,NewStructPathTBAA` `extern "C" float expf(float);` `// Emit int TBAA metadata on FP math libcalls, which is useful for alias analysis` `// CHECK-LABEL: define dso_local noundef float {{.*}}foo` `// CHECK-SAME: ptr nocapture noundef readonly [[NUM:%.*]], float noundef [[R2INV:%.*]], i32 noundef [[N:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {` `// CHECK-NEXT: [[ENTRY:.*:]]` `// CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i8, ptr [[NUM]], i64 40` `// CHECK-NEXT: [[TMP0:%.*]] = load float, ptr [[ARRAYIDX]], align 4, !tbaa [[TBAA2:![0-9]+]]` `// CHECK-NEXT: [[CALL:%.*]] = tail call float @expf(float noundef [[TMP0]]) #[[ATTR2:[0-9]+]]` `float foo (float num[], float r2inv, int n) {` `const float expm2 = expf(num[10]); // Emit TBAA metadata on @expf` `float tmp = expm2 * num[10];` `return tmp;` `}` `//.` `// NoNewStructPathTBAA: [[TBAA2]] = !{[[META3:![0-9]+]], [[META3]], i64 0}` `// NoNewStructPathTBAA: [[META3]] = !{!"float", [[META4:![0-9]+]], i64 0}` `// NoNewStructPathTBAA: [[META4]] = !{!"omnipotent char", [[META5:![0-9]+]], i64 0}` `// NoNewStructPathTBAA: [[META5]] = !{!"Simple C++ TBAA"}` `//.` `// NewStructPathTBAA: [[TBAA2]] = !{[[META3:![0-9]+]], [[META3]], i64 0, i64 4}` `// NewStructPathTBAA: [[META3]] = !{[[META4:![0-9]+]], i64 4, !"float"}` `// NewStructPathTBAA: [[META4]] = !{[[META5:![0-9]+]], i64 1, !"omnipotent char"}` `// NewStructPathTBAA: [[META5]] = !{!"Simple C++ TBAA"}` `//.` `//// NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:` `// NewStructPathTBAA: {{.*}}` `// NoNewStructPathTBAA: {{.*}}` https://github.com/llvm/llvm-project/pull/96025 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits