Skip to content

Commit c96eeca

Browse files
author
git apple-llvm automerger
committed
Merge commit 'a27c998c0060' from llvm.org/master into apple/master
2 parents b0c9fed + a27c998 commit c96eeca

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+264
-71
lines changed

llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,16 @@ bool BPFMISimplifyPatchable::removeLD() {
124124
if (!IsCandidate)
125125
continue;
126126

127-
auto Begin = MRI->use_begin(DstReg), End = MRI->use_end();
128-
decltype(End) NextI;
129-
for (auto I = Begin; I != End; I = NextI) {
130-
NextI = std::next(I);
131-
I->setReg(SrcReg);
127+
if (MRI->getRegClass(DstReg) == &BPF::GPR32RegClass) {
128+
BuildMI(MBB, MI, MI.getDebugLoc(), TII->get(BPF::COPY), DstReg)
129+
.addReg(SrcReg, 0, BPF::sub_32);
130+
} else {
131+
auto Begin = MRI->use_begin(DstReg), End = MRI->use_end();
132+
decltype(End) NextI;
133+
for (auto I = Begin; I != End; I = NextI) {
134+
NextI = std::next(I);
135+
I->setReg(SrcReg);
136+
}
132137
}
133138

134139
ToErase = &MI;
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
3+
; Source code:
4+
; struct b { int d; int e; } c;
5+
; int f() {
6+
; return __builtin_preserve_field_info(c.e, 0);
7+
; }
8+
; Compilation flag:
9+
; clang -target bpf -O2 -g -S -emit-llvm test.c
10+
11+
%struct.b = type { i32, i32 }
12+
13+
@c = common dso_local global %struct.b zeroinitializer, align 4, !dbg !0
14+
15+
; Function Attrs: nounwind readnone
16+
define dso_local i32 @f() local_unnamed_addr #0 !dbg !15 {
17+
entry:
18+
%0 = tail call i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.bs(%struct.b* nonnull @c, i32 1, i32 1), !dbg !18, !llvm.preserve.access.index !6
19+
%1 = tail call i32 @llvm.bpf.preserve.field.info.p0i32(i32* %0, i64 0), !dbg !19
20+
ret i32 %1, !dbg !20
21+
}
22+
23+
; CHECK: r0 = 4
24+
; CHECK: exit
25+
26+
; CHECK: .long 13 # BTF_KIND_STRUCT(id = 4)
27+
28+
; CHECK: .ascii ".text" # string offset=7
29+
; CHECK: .byte 98 # string offset=13
30+
; CHECK: .ascii "0:1" # string offset=19
31+
32+
; CHECK: .long 16 # FieldReloc
33+
; CHECK-NEXT: .long 7 # Field reloc section string offset=7
34+
; CHECK-NEXT: .long 1
35+
; CHECK-NEXT: .long .Ltmp{{[0-9]+}}
36+
; CHECK-NEXT: .long 4
37+
; CHECK-NEXT: .long 19
38+
; CHECK-NEXT: .long 0
39+
40+
; Function Attrs: nounwind readnone
41+
declare i32* @llvm.preserve.struct.access.index.p0i32.p0s_struct.bs(%struct.b*, i32, i32) #1
42+
43+
; Function Attrs: nounwind readnone
44+
declare i32 @llvm.bpf.preserve.field.info.p0i32(i32*, i64) #1
45+
46+
attributes #0 = { nounwind readnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
47+
attributes #1 = { nounwind readnone }
48+
49+
!llvm.dbg.cu = !{!2}
50+
!llvm.module.flags = !{!11, !12, !13}
51+
!llvm.ident = !{!14}
52+
53+
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
54+
!1 = distinct !DIGlobalVariable(name: "c", scope: !2, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
55+
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 10.0.0 (https://github.com/llvm/llvm-project.git d5509db439a1bb3f0822c42398c8b5921a665478)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5, nameTableKind: None)
56+
!3 = !DIFile(filename: "test.c", directory: "/tmp/home/yhs/work/tests/core")
57+
!4 = !{}
58+
!5 = !{!0}
59+
!6 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "b", file: !3, line: 1, size: 64, elements: !7)
60+
!7 = !{!8, !10}
61+
!8 = !DIDerivedType(tag: DW_TAG_member, name: "d", scope: !6, file: !3, line: 1, baseType: !9, size: 32)
62+
!9 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
63+
!10 = !DIDerivedType(tag: DW_TAG_member, name: "e", scope: !6, file: !3, line: 1, baseType: !9, size: 32, offset: 32)
64+
!11 = !{i32 2, !"Dwarf Version", i32 4}
65+
!12 = !{i32 2, !"Debug Info Version", i32 3}
66+
!13 = !{i32 1, !"wchar_size", i32 4}
67+
!14 = !{!"clang version 10.0.0 (https://github.com/llvm/llvm-project.git d5509db439a1bb3f0822c42398c8b5921a665478)"}
68+
!15 = distinct !DISubprogram(name: "f", scope: !3, file: !3, line: 2, type: !16, scopeLine: 2, isDefinition: true, isOptimized: true, unit: !2, retainedNodes: !4)
69+
!16 = !DISubroutineType(types: !17)
70+
!17 = !{!9}
71+
!18 = !DILocation(line: 3, column: 42, scope: !15)
72+
!19 = !DILocation(line: 3, column: 10, scope: !15)
73+
!20 = !DILocation(line: 3, column: 3, scope: !15)

llvm/test/CodeGen/BPF/CORE/intrinsic-array.ll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck %s
2+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck %s
23
;
34
; Source code:
45
; #define _(x) (__builtin_preserve_access_index(x))

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-1.ll

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1:7; int a2:4; int a3:5; int a4:16;} __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -44,11 +46,14 @@ entry:
4446

4547
; CHECK: r1 = 4
4648
; CHECK: r0 = 4
47-
; CHECK: r0 += r1
49+
; CHECK-ALU64: r0 += r1
50+
; CHECK-ALU32: w0 += w1
4851
; CHECK: r1 = 4
49-
; CHECK: r0 += r1
52+
; CHECK-ALU64: r0 += r1
53+
; CHECK-ALU32: w0 += w1
5054
; CHECK: r1 = 4
51-
; CHECK: r0 += r1
55+
; CHECK-ALU64: r0 += r1
56+
; CHECK-ALU32: w0 += w1
5257
; CHECK: exit
5358

5459
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-2.ll

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1; char a2; } __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -38,9 +40,11 @@ entry:
3840

3941
; CHECK: r1 = 8
4042
; CHECK: r0 = 4
41-
; CHECK: r0 += r1
43+
; CHECK-ALU64: r0 += r1
44+
; CHECK-ALU32: w0 += w1
4245
; CHECK: r1 = 1
43-
; CHECK: r0 += r1
46+
; CHECK-ALU64: r0 += r1
47+
; CHECK-ALU32: w0 += w1
4448
; CHECK: exit
4549

4650
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-byte-size-3.ll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1[10][10]; } __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -35,7 +37,8 @@ entry:
3537

3638
; CHECK: r1 = 40
3739
; CHECK: r0 = 4
38-
; CHECK: r0 += r1
40+
; CHECK-ALU64: r0 += r1
41+
; CHECK-ALU32: w0 += w1
3942
; CHECK: exit
4043

4144
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-1.ll

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef unsigned __uint;
57
; struct s1 { int a1; __uint a2:9; __uint a3:4; };
@@ -45,11 +47,14 @@ entry:
4547

4648
; CHECK: r1 = 1
4749
; CHECK: r0 = 1
48-
; CHECK: r0 += r1
50+
; CHECK-ALU64: r0 += r1
51+
; CHECK-ALU32: w0 += w1
4952
; CHECK: r1 = 1
50-
; CHECK: r0 += r1
53+
; CHECK-ALU64: r0 += r1
54+
; CHECK-ALU32: w0 += w1
5155
; CHECK: r1 = 1
52-
; CHECK: r0 += r1
56+
; CHECK-ALU64: r0 += r1
57+
; CHECK-ALU32: w0 += w1
5358
; CHECK: exit
5459

5560
; CHECK: .long 1 # BTF_KIND_STRUCT(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-2.ll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef unsigned __uint;
57
; struct s1 { int a1; __uint a2:9; __uint a3:4; };
@@ -34,7 +36,8 @@ entry:
3436

3537
; CHECK: r1 = 1
3638
; CHECK: r0 = 1
37-
; CHECK: r0 += r1
39+
; CHECK-ALU64: r0 += r1
40+
; CHECK-ALU32: w0 += w1
3841
; CHECK: exit
3942

4043
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-existence-3.ll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1[10][10]; } __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -34,7 +36,8 @@ entry:
3436

3537
; CHECK: r1 = 1
3638
; CHECK: r0 = 1
37-
; CHECK: r0 += r1
39+
; CHECK-ALU64: r0 += r1
40+
; CHECK-ALU32: w0 += w1
3841
; CHECK: exit
3942

4043
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-EL %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-EB %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-EL,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-EB,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1:7; int a2:4; int a3:5; int a4:16;} __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -47,13 +49,16 @@ entry:
4749
; CHECK-EL: r0 = 53
4850
; CHECK-EB: r1 = 32
4951
; CHECK-EB: r0 = 39
50-
; CHECK: r0 += r1
52+
; CHECK-ALU64: r0 += r1
53+
; CHECK-ALU32: w0 += w1
5154
; CHECK-EL: r1 = 48
5255
; CHECK-EB: r1 = 43
53-
; CHECK: r0 += r1
56+
; CHECK-ALU64: r0 += r1
57+
; CHECK-ALU32: w0 += w1
5458
; CHECK-EL: r1 = 32
5559
; CHECK-EB: r1 = 48
56-
; CHECK: r0 += r1
60+
; CHECK-ALU64: r0 += r1
61+
; CHECK-ALU32: w0 += w1
5762
; CHECK: exit
5863

5964
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-2.ll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1; short a2; } __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -35,7 +37,8 @@ entry:
3537

3638
; CHECK: r1 = 32
3739
; CHECK: r0 = 48
38-
; CHECK: r0 += r1
40+
; CHECK-ALU64: r0 += r1
41+
; CHECK-ALU32: w0 += w1
3942
; CHECK: exit
4043

4144
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-1.ll

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1:7; int a2:4; int a3:5; int a4:16;} __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -44,11 +46,14 @@ entry:
4446

4547
; CHECK: r1 = 57
4648
; CHECK: r0 = 60
47-
; CHECK: r0 += r1
49+
; CHECK-ALU64: r0 += r1
50+
; CHECK-ALU32: w0 += w1
4851
; CHECK: r1 = 59
49-
; CHECK: r0 += r1
52+
; CHECK-ALU64: r0 += r1
53+
; CHECK-ALU32: w0 += w1
5054
; CHECK: r1 = 48
51-
; CHECK: r0 += r1
55+
; CHECK-ALU64: r0 += r1
56+
; CHECK-ALU32: w0 += w1
5257
; CHECK: exit
5358

5459
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-2.ll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { int a1; char a2; } __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -34,7 +36,8 @@ entry:
3436

3537
; CHECK: r1 = 32
3638
; CHECK: r0 = 56
37-
; CHECK: r0 += r1
39+
; CHECK-ALU64: r0 += r1
40+
; CHECK-ALU32: w0 += w1
3841
; CHECK: exit
3942

4043
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-rshift-3.ll

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef struct s1 { char a1 [5][5]; } __s1;
57
; union u1 { int b1; __s1 b2; };
@@ -35,7 +37,8 @@ entry:
3537

3638
; CHECK: r1 = 24
3739
; CHECK: r0 = 56
38-
; CHECK: r0 += r1
40+
; CHECK-ALU64: r0 += r1
41+
; CHECK-ALU32: w0 += w1
3942
; CHECK: exit
4043

4144
; CHECK: .long 1 # BTF_KIND_UNION(id = 2)

llvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-signedness-1.ll

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
2-
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s
1+
; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
2+
; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU64 %s
3+
; RUN: llc -march=bpfel -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
4+
; RUN: llc -march=bpfeb -mattr=+alu32 -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK,CHECK-ALU32 %s
35
; Source code:
46
; typedef unsigned __uint;
57
; struct s1 { int a1; __uint a2:9; __uint a3:4; };
@@ -45,11 +47,14 @@ entry:
4547

4648
; CHECK: r1 = 1
4749
; CHECK: r0 = 0
48-
; CHECK: r0 += r1
50+
; CHECK-ALU64: r0 += r1
51+
; CHECK-ALU32: w0 += w1
4952
; CHECK: r1 = 1
50-
; CHECK: r0 += r1
53+
; CHECK-ALU64: r0 += r1
54+
; CHECK-ALU32: w0 += w1
5155
; CHECK: r1 = 0
52-
; CHECK: r0 += r1
56+
; CHECK-ALU64: r0 += r1
57+
; CHECK-ALU32: w0 += w1
5358
; CHECK: exit
5459

5560
; CHECK: .long 1 # BTF_KIND_STRUCT(id = 2)

0 commit comments

Comments
 (0)