llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: None (yonghong-song) <details> <summary>Changes</summary> Before llvm20, (void)__sync_fetch_and_add(...) always generates locked xadd insns. In linux kernel upstream discussion [1], it is found that for arm64 architecture, the original semantics of (void)__sync_fetch_and_add(...), i.e., __atomic_fetch_add(...), is preferred in order for jit to emit proper native barrier insns. In llvm commits [2] and [3], (void)__sync_fetch_and_add(...) will generate the following insns: - for cpu v1/v2: locked xadd insns to keep backward compatibility - for cpu v3/v4: __atomic_fetch_add() insns To ensure proper barrier semantics for (void)__sync_fetch_and_add(...), cpu v3/v4 is recommended. This patch enables cpu=v3 as the default cpu version. For users wanting to use cpu v1, -mcpu=v1 needs to be explicitly added to clang/llc command line. [1] https://lore.kernel.org/bpf/ZqqiQQWRnz7H93Hc@<!-- -->google.com/T/#mb68d67bc8f39e35a0c3db52468b9de59b79f021f [2] https://github.com/llvm/llvm-project/pull/101428 [3] https://github.com/llvm/llvm-project/pull/106494 --- Patch is 51.46 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/107008.diff 81 Files Affected: - (modified) clang/lib/Basic/Targets/BPF.cpp (+10-4) - (modified) clang/test/Preprocessor/bpf-predefined-macros.c (+2-2) - (modified) llvm/lib/Target/BPF/BPFSubtarget.cpp (+1-1) - (modified) llvm/test/CodeGen/BPF/32-bit-subreg-cond-select.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1-bpfeb.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2-bpfeb.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-3.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-3.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1-bpfeb.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-3.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-3.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/no-narrow-load.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/CORE/offset-reloc-end-load.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-2-bpfeb.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/adjust-opt-icmp1.ll (+4-4) - (modified) llvm/test/CodeGen/BPF/adjust-opt-icmp2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/adjust-opt-icmp3.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/adjust-opt-icmp4.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/adjust-opt-icmp5.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/adjust-opt-icmp6.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/adjust-opt-speculative1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/adjust-opt-speculative2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/alu8.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/atomics.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/basictest.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/bpf-fastcall-2.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/cc_args.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/cc_args_be.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/cc_ret.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/cmp.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/cttz-ctlz.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/ex1.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/fi_ri.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/i128.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/intrinsics.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/load.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/loops.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/many_args1.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/objdump_atomics.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/objdump_cond_op.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/objdump_cond_op_2.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/objdump_imm_hex.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/objdump_intrinsics.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/objdump_nop.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/objdump_static_var.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/objdump_trivial.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/pr57872.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/reloc-2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/remove_truncate_1.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/remove_truncate_2.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/remove_truncate_3.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/remove_truncate_6.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/remove_truncate_8.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/rodata_1.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/rodata_2.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/rodata_3.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/rodata_4.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/rodata_6.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/rodata_7.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/sanity.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/setcc.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/shifts.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/sockex2.ll (+1-1) - (modified) llvm/test/CodeGen/BPF/undef.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/xadd.ll (+2-2) - (modified) llvm/test/CodeGen/BPF/xadd_legal.ll (+4-4) - (modified) llvm/test/tools/llvm-objdump/BPF/interleaved-source-test.ll (+2-2) ``````````diff diff --git a/clang/lib/Basic/Targets/BPF.cpp b/clang/lib/Basic/Targets/BPF.cpp index b5ba11a3bdca9d..7171afe975a8dc 100644 --- a/clang/lib/Basic/Targets/BPF.cpp +++ b/clang/lib/Basic/Targets/BPF.cpp @@ -38,16 +38,22 @@ void BPFTargetInfo::getTargetDefines(const LangOptions &Opts, Builder.defineMacro("__BPF_FEATURE_ADDR_SPACE_CAST"); - if (CPU.empty() || CPU == "generic" || CPU == "v1") { + if (CPU == "generic" || CPU == "v1") { Builder.defineMacro("__BPF_CPU_VERSION__", "1"); return; } - std::string CpuVerNumStr = CPU.substr(1); - Builder.defineMacro("__BPF_CPU_VERSION__", CpuVerNumStr); + int CpuVerNum; + if (CPU.empty()) { + Builder.defineMacro("__BPF_CPU_VERSION__", "3"); + CpuVerNum = 3; + } else { + std::string CpuVerNumStr = CPU.substr(1); + Builder.defineMacro("__BPF_CPU_VERSION__", CpuVerNumStr); + CpuVerNum = std::stoi(CpuVerNumStr); + } Builder.defineMacro("__BPF_FEATURE_MAY_GOTO"); - int CpuVerNum = std::stoi(CpuVerNumStr); if (CpuVerNum >= 2) Builder.defineMacro("__BPF_FEATURE_JMP_EXT"); diff --git a/clang/test/Preprocessor/bpf-predefined-macros.c b/clang/test/Preprocessor/bpf-predefined-macros.c index 246cbfa2d6ab7d..360b9330b75fef 100644 --- a/clang/test/Preprocessor/bpf-predefined-macros.c +++ b/clang/test/Preprocessor/bpf-predefined-macros.c @@ -1,5 +1,5 @@ -// RUN: %clang -E -target bpfel -x c -o - %s | FileCheck -check-prefix=CHECK -check-prefix=CPU_NO %s -// RUN: %clang -E -target bpfeb -x c -o - %s | FileCheck -check-prefix=CHECK -check-prefix=CPU_NO %s +// RUN: %clang -E -target bpfel -mcpu=v1 -x c -o - %s | FileCheck -check-prefix=CHECK -check-prefix=CPU_NO %s +// RUN: %clang -E -target bpfeb -mcpu=v1 -x c -o - %s | FileCheck -check-prefix=CHECK -check-prefix=CPU_NO %s // RUN: %clang -E -target bpfel -mcpu=v1 -x c -o - %s | FileCheck -check-prefix=CHECK -check-prefix=CPU_V1 %s // RUN: %clang -E -target bpfel -mcpu=v2 -x c -o - %s | FileCheck -check-prefix=CHECK -check-prefix=CPU_V2 %s // RUN: %clang -E -target bpfel -mcpu=v3 -x c -o - %s | FileCheck -check-prefix=CHECK -check-prefix=CPU_V3 %s diff --git a/llvm/lib/Target/BPF/BPFSubtarget.cpp b/llvm/lib/Target/BPF/BPFSubtarget.cpp index 9a8e42f3237114..7ffa150d3b07ef 100644 --- a/llvm/lib/Target/BPF/BPFSubtarget.cpp +++ b/llvm/lib/Target/BPF/BPFSubtarget.cpp @@ -73,7 +73,7 @@ void BPFSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) { HasJmpExt = true; return; } - if (CPU == "v3") { + if (CPU.empty() || CPU == "v3") { HasJmpExt = true; HasJmp32 = true; HasAlu32 = true; diff --git a/llvm/test/CodeGen/BPF/32-bit-subreg-cond-select.ll b/llvm/test/CodeGen/BPF/32-bit-subreg-cond-select.ll index e8a4f81a0240ea..a60d39e5d6c1e3 100644 --- a/llvm/test/CodeGen/BPF/32-bit-subreg-cond-select.ll +++ b/llvm/test/CodeGen/BPF/32-bit-subreg-cond-select.ll @@ -1,4 +1,4 @@ -; RUN: llc -O2 -march=bpfel -mattr=+alu32 < %s | FileCheck %s +; RUN: llc -O2 -march=bpfel -mcpu=v1 -mattr=+alu32 < %s | FileCheck %s ; ; unsigned int select_cc_32 (unsigned a, unsigned b, int c, int d) ; { diff --git a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1-bpfeb.ll b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1-bpfeb.ll index 63a0945edf152a..b8b7a0b8e7c2d3 100644 --- a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1-bpfeb.ll +++ b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1-bpfeb.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 -; RUN: opt -O2 -S < %s | llc -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: opt -O2 -S < %s | llc -mattr=+alu32 -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: opt -O2 -S < %s | llc -mcpu=v1 -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: opt -O2 -S < %s | llc -mcpu=v1 -mattr=+alu32 -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; struct s { ; unsigned long long f1; diff --git a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1.ll b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1.ll index 33462198eab15a..4cf0a13f31e80d 100644 --- a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1.ll +++ b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 -; RUN: opt -O2 -S < %s | llc -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: opt -O2 -S < %s | llc -mattr=+alu32 -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: opt -O2 -S < %s | llc -mcpu=v1 -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: opt -O2 -S < %s | llc -mcpu=v1 -mattr=+alu32 -filetype=asm | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; struct s { ; unsigned long long f1; diff --git a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2-bpfeb.ll b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2-bpfeb.ll index 8f344f2df9d70e..cdcd7e6f5e3744 100644 --- a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2-bpfeb.ll +++ b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2-bpfeb.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU32 %s ; Source code: ; struct s { ; char f1; diff --git a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2.ll b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2.ll index 903fcb2b30a0c0..dd7f1c7a626452 100644 --- a/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2.ll +++ b/llvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU32 %s ; Source code: ; struct s { ; char f1; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-1.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-1.ll index a8280579ea509f..525f38de765b20 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-1.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-1.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1:7; int a2:4; int a3:5; int a4:16;} __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-2.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-2.ll index 39c02da24da42c..11235b55790f1a 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-2.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-2.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1; char a2; } __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-3.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-3.ll index f63a3ee4de7036..e3382d658ca5e5 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-3.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-3.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1[10][10]; } __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-1.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-1.ll index cab5474145b46b..69872db3bed0bd 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-1.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-1.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef unsigned __uint; ; struct s1 { int a1; __uint a2:9; __uint a3:4; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-2.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-2.ll index 2c56c0d1d704b4..90706e9b4b98f3 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-2.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-2.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef unsigned __uint; ; struct s1 { int a1; __uint a2:9; __uint a3:4; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-3.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-3.ll index 020b53238767c4..22970401e88849 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-3.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-3.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1[10][10]; } __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1-bpfeb.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1-bpfeb.ll index f4180c0d0de351..503a26c391acf9 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1-bpfeb.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1-bpfeb.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1:7; int a2:4; int a3:5; int a4:16;} __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll index 342a9b70291964..0327f1a0b5e891 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1:7; int a2:4; int a3:5; int a4:16;} __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-2.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-2.ll index 13c79563d4fcb4..2a92d088dc6b68 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-2.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-2.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1; short a2; } __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-1.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-1.ll index 7790273a4978d3..6e62bb308b5801 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-1.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-1.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1:7; int a2:4; int a3:5; int a4:16;} __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-2.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-2.ll index f41c6a788f6e7c..77ea26a1ff9b3f 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-2.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-2.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { int a1; char a2; } __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-3.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-3.ll index 2ede30701e95b3..556f69f491aae4 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-3.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-3.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef struct s1 { char a1 [5][5]; } __s1; ; union u1 { int b1; __s1 b2; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-1.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-1.ll index 9242183d15a33a..2741050b58107c 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-1.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-1.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; typedef unsigned __uint; ; struct s1 { int a1; __uint a2:9; __uint a3:4; }; diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-2.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-2.ll index d5fbc657d4ba7c..b71bbf3de868bc 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-2.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-2.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; enum A { AA = -1, AB = 0, }; /* signed */ ; enum B { BA = 0, BB = 1, }; /* unsigned */ diff --git a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-3.ll b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-3.ll index 5a2a1b7031c335..5caea9751b7908 100644 --- a/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-3.ll +++ b/llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-3.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s +; RUN: llc -mcpu=v1 -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s ; Source code: ; enum A { AA = -1, AB = 0, }; ; enum B { BA = 0, BB = 1, }; diff --git a/llvm/test/CodeGen/BPF/CORE/no-narrow-load.ll b/llvm/test/CodeGen/BPF/CORE/no-narrow-load.ll index dbfc4d2f99fc56..9998c985e2aeeb 100644 --- a/llvm/test/CodeGen/BPF/CORE/no-narrow-load.ll +++ b/llvm/test/CodeGen/BPF/CORE/no-narrow-load.ll @@ -1,5 +1,5 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK %s +; RUN: llc -mcpu=v1 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK %s ; Source code: ; struct data_t { ; int d1; diff --git a/llvm/test/CodeGen/BPF/CORE/offset-reloc-end-load.ll b/llvm/test/CodeGen/BPF/CORE/offset-reloc-end-load.ll index 7980c02bde4282..499e368983f3a5 100644 --- a/llvm/test/CodeGen/BPF/CORE/offset-reloc-end-load.ll +++ b/llvm/test/CodeGen/BPF/CORE/offset-reloc-end-load.ll @@ -1,6 +1,6 @@ ; RUN: opt -O2 %s | llvm-dis > %t1 -; RUN: llc -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s -; RUN: llc -mattr=+alu32 -filetype=asm -o - %t1 | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s +; RUN: llc -mcpu=v1 ... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/107008 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits