Skip to content

Conversation

mahesh-attarde
Copy link
Contributor

Some of dependency opcodes for G_IS_FPCLASS are now supported. This patch adds lowering for G_IS_FPCLASS.
Test is updated for GISEL Run separately Test PR.

@mahesh-attarde
Copy link
Contributor Author

Current generic lowering differs from SDAG in two ways.

  1. X86 DAG uses signed comparisons where as X86 Generic GISEL adds unsigned compares.
  2. Sequence like xor ecx ecx; or cl, al is not combined in GISEL.

@e-kud e-kud requested review from RKSimon, arsenm and e-kud and removed request for RKSimon, arsenm and e-kud October 7, 2025 08:54
@mahesh-attarde
Copy link
Contributor Author

mahesh-attarde commented Oct 7, 2025

Current generic lowering differs from SDAG in two ways.

  1. X86 DAG uses signed comparisons where as X86 Generic GISEL adds unsigned compares.
  2. Sequence like xor ecx ecx; or cl, al is not combined in GISEL.

Missing Optimization issue #162248

Copy link
Collaborator

@RKSimon RKSimon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment on lines 6 to 7
; RUN: llc < %s -mtriple=i686-linux -global-isel -global-isel-abort=1 | FileCheck %s -check-prefixes=X86,X86-GISEL
; RUN: llc < %s -mtriple=x86_64-linux -global-isel -global-isel-abort=1 | FileCheck %s -check-prefixes=X64,X64-GISEL
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe drop X86 and X64 from GlobalISel? Or introduce a common prefix for SDAG and FASTISEL. FASTISEL duplicates SDAG significantly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing X86 check label from globalisel run is conflict, X64 removal helps to reduce lines by ~70 lines.
Common prefix for DAG and FASTISEL was not much useful, reported message of unused prefix at bottom.
Change updated here.

Copy link
Contributor

@arsenm arsenm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably should have vector tests but those can be added later

@mahesh-attarde
Copy link
Contributor Author

If no objections, can we merge?

@RKSimon RKSimon enabled auto-merge (squash) October 14, 2025 12:46
@RKSimon RKSimon merged commit 83ac808 into llvm:main Oct 14, 2025
9 of 10 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 14, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-expensive-checks-ubuntu running on as-builder-4 while building llvm at step 7 "test-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/187/builds/12521

Here is the relevant piece of the build log for the reference
Step 7 (test-check-all) failure: Test just built components: check-all completed (failure)
******************** TEST 'LLVM :: CodeGen/X86/isel-fpclass.ll' FAILED ********************
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 2
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -mtriple=i686-linux | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X86,X86-SDAGISEL
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=i686-linux
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X86,X86-SDAGISEL
# RUN: at line 3
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -mtriple=x86_64-linux | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X64,X64-SDAGISEL
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=x86_64-linux
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X64,X64-SDAGISEL
# RUN: at line 4
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -mtriple=i686-linux -fast-isel -fast-isel-abort=1  | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X86-FASTISEL
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=i686-linux -fast-isel -fast-isel-abort=1
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X86-FASTISEL
# RUN: at line 5
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -mtriple=x86_64-linux -fast-isel -fast-isel-abort=1  | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X64,X64-FASTISEL
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=x86_64-linux -fast-isel -fast-isel-abort=1
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X64,X64-FASTISEL
# RUN: at line 6
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -mtriple=i686-linux -global-isel -global-isel-abort=1  | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/X86/isel-fpclass.ll -check-prefixes=X86,X86-GISEL
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=i686-linux -global-isel -global-isel-abort=1
# .---command stderr------------
# | 
# | # After InstructionSelect
# | # Machine code for function isnone_f: IsSSA, TracksLiveness, Legalized, RegBankSelected, Selected
# | Frame Objects:
# |   fi#-1: size=4, align=16, fixed, at location [SP+4]
# | save/restore points:
# | save points are empty
# | restore points are empty
# | 
# | bb.1.entry:
# |   %5:gr32 = MOV32r0 implicit-def dead $eflags
# |   %4:gr8 = COPY %5.sub_8bit:gr32
# |   $al = COPY %4:gr8
# |   RET 0, implicit $al
# | 
# | # End machine code for function isnone_f.
# | 
# | *** Bad machine code: Invalid register class for subregister index ***
# | - function:    isnone_f
# | - basic block: %bb.1 entry (0x652465f4e978)
# | - instruction: %4:gr8 = COPY %5.sub_8bit:gr32
# | - operand 1:   %5.sub_8bit:gr32
# | Register class GR32 does not fully support subreg index sub_8bit
# | LLVM ERROR: Found 1 machine code errors.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
...

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 14, 2025

LLVM Buildbot has detected a new failure on builder openmp-s390x-linux running on systemz-1 while building llvm at step 6 "test-openmp".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/88/builds/17095

Here is the relevant piece of the build log for the reference
Step 6 (test-openmp) failure: test (failure)
******************** TEST 'libomp :: tasking/issue-94260-2.c' FAILED ********************
Exit Code: -11

Command Output (stdout):
--
# RUN: at line 1
/home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/./bin/clang -fopenmp   -I /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/src -I /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/openmp/runtime/test -L /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/src  -fno-omit-frame-pointer -mbackchain -I /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/openmp/runtime/test/ompt /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/openmp/runtime/test/tasking/issue-94260-2.c -o /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/test/tasking/Output/issue-94260-2.c.tmp -lm -latomic && /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/test/tasking/Output/issue-94260-2.c.tmp
# executed command: /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/./bin/clang -fopenmp -I /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/src -I /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/openmp/runtime/test -L /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/src -fno-omit-frame-pointer -mbackchain -I /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/openmp/runtime/test/ompt /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.src/openmp/runtime/test/tasking/issue-94260-2.c -o /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/test/tasking/Output/issue-94260-2.c.tmp -lm -latomic
# executed command: /home/uweigand/sandbox/buildbot/openmp-s390x-linux/llvm.build/runtimes/runtimes-bins/openmp/runtime/test/tasking/Output/issue-94260-2.c.tmp
# note: command had no output on stdout or stderr
# error: command failed with exit status: -11

--

********************


@RKSimon
Copy link
Collaborator

RKSimon commented Oct 14, 2025

@mahesh-attarde please can you investigate the EXPENSIVE_CHECKS build failures?

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 14, 2025

LLVM Buildbot has detected a new failure on builder sanitizer-x86_64-linux-android running on sanitizer-buildbot-android while building llvm at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/186/builds/13164

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
PASS: UBSan-Standalone-aarch64 :: TestCases/Misc/nonnull-arg.cpp (254 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/deep_tail_call.cpp (255 of 1772)
XFAIL: AddressSanitizer-aarch64-android :: TestCases/Posix/asan-symbolize-sanity-test.cpp (256 of 1772)
PASS: SanitizerCommon-asan-aarch64-Android :: Posix/qsort.cpp (257 of 1772)
PASS: SanitizerCommon-asan-aarch64-Android :: Linux/signal_name.c (258 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/small_memcpy_test.cpp (259 of 1772)
PASS: HWAddressSanitizer-aarch64 :: TestCases/tag-ptr.cpp (260 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/contiguous_container_crash.cpp (261 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/Posix/halt_on_error_suppress_equal_pcs.cpp (262 of 1772)
PASS: UBSan-AddressSanitizer-aarch64 :: TestCases/Integer/no-recover.cpp (263 of 1772)
FAIL: AddressSanitizer-aarch64-android :: TestCases/ignorelist.cpp (264 of 1772)
******************** TEST 'AddressSanitizer-aarch64-android :: TestCases/ignorelist.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
adb command failed ['shell', 'cd /data/local/tmp/Output && LD_LIBRARY_PATH=/data/local/tmp/Output HOME="/var/lib/buildbot" TMPDIR="/tmp/lit-tmp-8xwnzolf" ASAN_OPTIONS="abort_on_error=0" /data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp  >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp.stdout 2>/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp.stderr ; echo $? >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp.exitcode']
/tmp/lit-tmp-8xwnzolf/tmpm1uhod8g
error: closed


--
Command Output (stderr):
--
echo "fun:*brokenFunction*" > /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp # RUN: at line 3
+ echo 'fun:*brokenFunction*'
echo "global:*badGlobal*" >> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp # RUN: at line 4
+ echo 'global:*badGlobal*'
echo "src:*ignorelist-extra.cpp" >> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp # RUN: at line 5
+ echo 'src:*ignorelist-extra.cpp'
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang  --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64  -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta  -fuse-ld=lld  -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O0 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp &&  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp 2>&1 # RUN: at line 6
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -fuse-ld=lld -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O0 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang  --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64  -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta  -fuse-ld=lld  -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O1 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp &&  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp 2>&1 # RUN: at line 8
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -fuse-ld=lld -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O1 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp

--

********************
FAIL: HWAddressSanitizer-aarch64 :: TestCases/tail-magic.c (265 of 1772)
******************** TEST 'HWAddressSanitizer-aarch64 :: TestCases/tail-magic.c' FAILED ********************
Exit Code: 255

Command Output (stdout):
--
adb command failed ['shell', 'cd /data/local/tmp/Output && LD_LIBRARY_PATH=/data/local/tmp/Output HOME="/var/lib/buildbot" HWASAN_OPTIONS="disable_allocator_tagging=1:random_tags=0:fail_without_syscall_abi=0:abort_on_error=0:free_checks_tail_magic=0" TMPDIR="/tmp/lit-tmp-8xwnzolf" /data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp  >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp.stdout 2>/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp.stderr ; echo $? >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp.exitcode']
/tmp/lit-tmp-8xwnzolf/tmp0m4p4ccj

Step 31 (run lit tests [aarch64/bluejay-userdebug/TQ3A.230805.001]) failure: run lit tests [aarch64/bluejay-userdebug/TQ3A.230805.001] (failure)
...
PASS: UBSan-Standalone-aarch64 :: TestCases/Misc/nonnull-arg.cpp (254 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/deep_tail_call.cpp (255 of 1772)
XFAIL: AddressSanitizer-aarch64-android :: TestCases/Posix/asan-symbolize-sanity-test.cpp (256 of 1772)
PASS: SanitizerCommon-asan-aarch64-Android :: Posix/qsort.cpp (257 of 1772)
PASS: SanitizerCommon-asan-aarch64-Android :: Linux/signal_name.c (258 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/small_memcpy_test.cpp (259 of 1772)
PASS: HWAddressSanitizer-aarch64 :: TestCases/tag-ptr.cpp (260 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/contiguous_container_crash.cpp (261 of 1772)
PASS: AddressSanitizer-aarch64-android :: TestCases/Posix/halt_on_error_suppress_equal_pcs.cpp (262 of 1772)
PASS: UBSan-AddressSanitizer-aarch64 :: TestCases/Integer/no-recover.cpp (263 of 1772)
FAIL: AddressSanitizer-aarch64-android :: TestCases/ignorelist.cpp (264 of 1772)
******************** TEST 'AddressSanitizer-aarch64-android :: TestCases/ignorelist.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
adb command failed ['shell', 'cd /data/local/tmp/Output && LD_LIBRARY_PATH=/data/local/tmp/Output HOME="/var/lib/buildbot" TMPDIR="/tmp/lit-tmp-8xwnzolf" ASAN_OPTIONS="abort_on_error=0" /data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp  >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp.stdout 2>/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp.stderr ; echo $? >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp.exitcode']
/tmp/lit-tmp-8xwnzolf/tmpm1uhod8g
error: closed


--
Command Output (stderr):
--
echo "fun:*brokenFunction*" > /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp # RUN: at line 3
+ echo 'fun:*brokenFunction*'
echo "global:*badGlobal*" >> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp # RUN: at line 4
+ echo 'global:*badGlobal*'
echo "src:*ignorelist-extra.cpp" >> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp # RUN: at line 5
+ echo 'src:*ignorelist-extra.cpp'
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang  --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64  -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta  -fuse-ld=lld  -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O0 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp &&  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp 2>&1 # RUN: at line 6
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -fuse-ld=lld -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O0 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang  --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only  --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64  -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta  -fuse-ld=lld  -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O1 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp &&  /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp 2>&1 # RUN: at line 8
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/sanitizer_common/android_commands/android_compile.py /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/bin/clang --driver-mode=g++ -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only --target=aarch64-linux-android24 --sysroot=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -B/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/android_ndk/toolchains/llvm/prebuilt/linux-x86_64 -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -fuse-ld=lld -shared-libasan -fsanitize-ignorelist=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmpmp -O1 /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/ignorelist.cpp -o /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Helpers/ignorelist-extra.cpp
+ /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/asan/AARCH64AndroidConfig/TestCases/Output/ignorelist.cpp.tmp

--

********************
FAIL: HWAddressSanitizer-aarch64 :: TestCases/tail-magic.c (265 of 1772)
******************** TEST 'HWAddressSanitizer-aarch64 :: TestCases/tail-magic.c' FAILED ********************
Exit Code: 255

Command Output (stdout):
--
adb command failed ['shell', 'cd /data/local/tmp/Output && LD_LIBRARY_PATH=/data/local/tmp/Output HOME="/var/lib/buildbot" HWASAN_OPTIONS="disable_allocator_tagging=1:random_tags=0:fail_without_syscall_abi=0:abort_on_error=0:free_checks_tail_magic=0" TMPDIR="/tmp/lit-tmp-8xwnzolf" /data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp  >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp.stdout 2>/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp.stderr ; echo $? >/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_aarch64/test/hwasan/AARCH64/TestCases/Output/tail-magic.c.tmp.exitcode']
/tmp/lit-tmp-8xwnzolf/tmp0m4p4ccj


@mahesh-attarde
Copy link
Contributor Author

@mahesh-attarde please can you investigate the EXPENSIVE_CHECKS build failures?

I am working on it.

akadutta pushed a commit to akadutta/llvm-project that referenced this pull request Oct 14, 2025
Some of dependency opcodes for G_IS_FPCLASS are now supported. This
patch adds lowering for G_IS_FPCLASS.
Test is updated for GISEL Run separately [Test
PR] llvm#160741.
@mahesh-attarde
Copy link
Contributor Author

mahesh-attarde commented Oct 15, 2025

@mahesh-attarde please can you investigate the EXPENSIVE_CHECKS build failures?

Failure reported here is related to G_CONSTANT i8 0. GIR.
During ISEL it was selected with MOV32r0, further 8bit Reg EXTRACT using pattern 0:{ *:[i8] } => (EXTRACT_SUBREG:{ *:[i8] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_8bit:{ *:[i32] }). It is same pattern used from DAG. Change here is about regbank (gr32) that did not match DAG(gr32_abcd).

GISEL LOG

# After InstructionSelect
# Machine code for function isnone_f: IsSSA, TracksLiveness, Legalized, RegBankSelected, Selected
Frame Objects:
  fi#-1: size=4, align=16, fixed, at location [SP+4]
save/restore points:
save points are empty
restore points are empty

bb.1.entry:
  %5:gr32 = MOV32r0 implicit-def dead $eflags
  %4:gr8 = COPY %5.sub_8bit:gr32
  $al = COPY %4:gr8
  RET 0, implicit $al

# End machine code for function isnone_f.

*** Bad machine code: Invalid register class for subregister index ***
- function:    isnone_f
- basic block: %bb.1 entry (0x5e1917110858)
- instruction: %4:gr8 = COPY %5.sub_8bit:gr32
- operand 1:   %5.sub_8bit:gr32
Register class GR32 does not fully support subreg index sub_8bit
LLVM ERROR: Found 1 machine code errors.

DAG LOG

bb.0.entry:
  %0:gr32_abcd = MOV32r0 implicit-def dead $eflags
  %1:gr8 = COPY %0.sub_8bit:gr32_abcd
  $al = COPY %1:gr8
  RET 0, $al

I tried few approaches to deal with same, those ended up with regressions on DAG. I this takes up more time, I will submit disabling for i686 RUN and continue fixing it.

@e-kud
Copy link
Contributor

e-kud commented Oct 16, 2025

@mahesh-attarde please can you investigate the EXPENSIVE_CHECKS build failures?

Failure reported here is related to G_CONSTANT i8 0. GIR. During ISEL it was selected with MOV32r0, further 8bit Reg EXTRACT using pattern 0:{ *:[i8] } => (EXTRACT_SUBREG:{ *:[i8] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_8bit:{ *:[i32] }). It is same pattern used from DAG. Change here is about regbank (gr32) that did not match DAG(gr32_abcd).

GISEL LOG

# After InstructionSelect
# Machine code for function isnone_f: IsSSA, TracksLiveness, Legalized, RegBankSelected, Selected
Frame Objects:
  fi#-1: size=4, align=16, fixed, at location [SP+4]
save/restore points:
save points are empty
restore points are empty

bb.1.entry:
  %5:gr32 = MOV32r0 implicit-def dead $eflags
  %4:gr8 = COPY %5.sub_8bit:gr32
  $al = COPY %4:gr8
  RET 0, implicit $al

# End machine code for function isnone_f.

*** Bad machine code: Invalid register class for subregister index ***
- function:    isnone_f
- basic block: %bb.1 entry (0x5e1917110858)
- instruction: %4:gr8 = COPY %5.sub_8bit:gr32
- operand 1:   %5.sub_8bit:gr32
Register class GR32 does not fully support subreg index sub_8bit
LLVM ERROR: Found 1 machine code errors.

DAG LOG

bb.0.entry:
  %0:gr32_abcd = MOV32r0 implicit-def dead $eflags
  %1:gr8 = COPY %0.sub_8bit:gr32_abcd
  $al = COPY %1:gr8
  RET 0, $al

I tried few approaches to deal with same, those ended up with regressions on DAG. I this takes up more time, I will submit disabling for i686 RUN and continue fixing it.

Basically the problem is that for this code SDAG can use gr8_abcd and it is not hardcoded by tblgen, but we hardcode gr8 reg class in GlobalISel tblgen matcher. We need to think about the proper way to handle such sutiations.

@RKSimon
Copy link
Collaborator

RKSimon commented Oct 16, 2025

Regrettably, I think its time to revert this and get EXPENSIVE_CHECKS green again.

RKSimon added a commit that referenced this pull request Oct 16, 2025
RKSimon added a commit that referenced this pull request Oct 16, 2025
Reverts #162232 due to failures on EXPENSIVE_CHECKS enabled targets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants