llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Erich Keane (erichkeane) <details> <summary>Changes</summary> This seemingly got reverted in classic codegen? I leave a version of the TODO in place since I suspect we'll see it agian. --- Full diff: https://github.com/llvm/llvm-project/pull/219491.diff 2 Files Affected: - (modified) clang/test/CIR/CodeGen/ptrdiff.c (+12-6) - (modified) clang/test/CIR/CodeGen/ptrdiff.cpp (+6-3) ``````````diff diff --git a/clang/test/CIR/CodeGen/ptrdiff.c b/clang/test/CIR/CodeGen/ptrdiff.c index cf28cedf0f7ec..26ce6f718e96f 100644 --- a/clang/test/CIR/CodeGen/ptrdiff.c +++ b/clang/test/CIR/CodeGen/ptrdiff.c @@ -17,10 +17,13 @@ int addrcmp(const void* a, const void* b) { // LLVM-NOT: sdiv // LLVM: trunc i64 %[[SUB]] to i32 - // TODO: Fix inconsistency with LLVM (ptrtoint vs ptrtoaddr) + // TODO: Fix inconsistency with LLVM (ptrtoint vs ptrtoaddr). + // Classic-codegen seems to have temporarily reverted that + // difference, but we should leave the TODO to make sure we + // don't lose it next time it comes back. // OGCG-LABEL: define dso_local i32 @addrcmp( - // OGCG: %[[PTR_A:.*]] = ptrtoaddr ptr {{.*}} to i64 - // OGCG: %[[PTR_B:.*]] = ptrtoaddr ptr {{.*}} to i64 + // OGCG: %[[PTR_A:.*]] = ptrtoint ptr {{.*}} to i64 + // OGCG: %[[PTR_B:.*]] = ptrtoint ptr {{.*}} to i64 // OGCG: %[[SUB:.*]] = sub i64 %[[PTR_A]], %[[PTR_B]] // OGCG-NOT: sdiv // OGCG: trunc i64 %[[SUB]] to i32 @@ -42,10 +45,13 @@ unsigned long long test_ptr_diff(int *a, int* b) { // LLVM: %[[RETLOAD:.*]] = load i64, ptr %[[RETADDR]], align // LLVM: ret i64 %[[RETLOAD]] - // TODO: Fix inconsistency with LLVM (ptrtoint vs ptrtoaddr) + // TODO: Fix inconsistency with LLVM (ptrtoint vs ptrtoaddr). + // Classic-codegen seems to have temporarily reverted that + // difference, but we should leave the TODO to make sure we + // don't lose it next time it comes back. // OGCG-LABEL: define dso_local i64 @test_ptr_diff( - // OGCG: %[[IA:.*]] = ptrtoaddr ptr %{{.*}} to i64 - // OGCG: %[[IB:.*]] = ptrtoaddr ptr %{{.*}} to i64 + // OGCG: %[[IA:.*]] = ptrtoint ptr %{{.*}} to i64 + // OGCG: %[[IB:.*]] = ptrtoint ptr %{{.*}} to i64 // OGCG: %[[SUB:.*]] = sub i64 %[[IA]], %[[IB]] // OGCG: %[[Q:.*]] = sdiv exact i64 %[[SUB]], 4 // OGCG: ret i64 %[[Q]] diff --git a/clang/test/CIR/CodeGen/ptrdiff.cpp b/clang/test/CIR/CodeGen/ptrdiff.cpp index 0d40c563c6403..a88c9fc335a4a 100644 --- a/clang/test/CIR/CodeGen/ptrdiff.cpp +++ b/clang/test/CIR/CodeGen/ptrdiff.cpp @@ -22,10 +22,13 @@ size_type size(unsigned long *_start, unsigned long *_finish) { // LLVM: %[[RET:.*]] = load i64, ptr %[[RETADDR]], align // LLVM: ret i64 %[[RET]] - // TODO: Fix inconsistency with LLVM (ptrtoint vs ptrtoaddr) + // TODO: Fix inconsistency with LLVM (ptrtoint vs ptrtoaddr). + // Classic-codegen seems to have temporarily reverted that + // difference, but we should leave the TODO to make sure we + // don't lose it next time it comes back. // OGCG-LABEL: define dso_local {{.*}}i64 @_Z4sizePmS_( - // OGCG: %[[IA:.*]] = ptrtoaddr ptr %{{.*}} to i64 - // OGCG: %[[IB:.*]] = ptrtoaddr ptr %{{.*}} to i64 + // OGCG: %[[IA:.*]] = ptrtoint ptr %{{.*}} to i64 + // OGCG: %[[IB:.*]] = ptrtoint ptr %{{.*}} to i64 // OGCG: %[[SUB:.*]] = sub i64 %[[IA]], %[[IB]] // OGCG: %[[Q:.*]] = sdiv exact i64 %[[SUB]], 8 // OGCG: ret i64 %[[Q]] `````````` </details> https://github.com/llvm/llvm-project/pull/219491 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
