• Home
  • Raw
  • Download

Lines Matching +full:thread +full:- +full:1 +full:- +full:4

1 ; RUN: llc < %s -march=bpfel -show-mc-encoding | FileCheck %s
6 @hash_map = global %struct.bpf_map_def { i32 1, i32 4, i32 8, i32 1024 }, section "maps", align 4
10 %key = alloca i32, align 4
12 %1 = bitcast %struct.sk_buff* %skb to i8*
13 %2 = call i64 @llvm.bpf.load.half(i8* %1, i64 12) #2
15 br i1 %3, label %4, label %6
17 ; <label>:4 ; preds = %0
18 %5 = call i64 @llvm.bpf.load.half(i8* %1, i64 16) #2
21 ; <label>:6 ; preds = %4, %0
22 %proto.0.i = phi i64 [ %5, %4 ], [ %2, %0 ]
23 %nhoff.0.i = phi i64 [ 18, %4 ], [ 14, %0 ]
29 %10 = call i64 @llvm.bpf.load.half(i8* %1, i64 %9) #2
30 %11 = add i64 %nhoff.0.i, 4
34 %proto.1.i = phi i64 [ %10, %8 ], [ %proto.0.i, %6 ]
35 %nhoff.1.i = phi i64 [ %11, %8 ], [ %nhoff.0.i, %6 ]
36 switch i64 %proto.1.i, label %flow_dissector.exit.thread [
42 %14 = add i64 %nhoff.1.i, 6
43 %15 = call i64 @llvm.bpf.load.half(i8* %1, i64 %14) #2
46 br i1 %17, label %18, label %.thread.i.i
49 %19 = add i64 %nhoff.1.i, 9
50 %20 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %19) #2
52 br i1 %21, label %28, label %.thread.i.i
54 .thread.i.i: ; preds = %18, %13
56 %23 = add i64 %nhoff.1.i, 12
57 %24 = call i64 @llvm.bpf.load.word(i8* %1, i64 %23) #2
58 %25 = add i64 %nhoff.1.i, 16
59 %26 = call i64 @llvm.bpf.load.word(i8* %1, i64 %25) #2
63 ; <label>:28 ; preds = %.thread.i.i, %18
64 %29 = phi i32 [ %27, %.thread.i.i ], [ undef, %18 ]
65 %30 = phi i64 [ %22, %.thread.i.i ], [ 47, %18 ]
66 %31 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %nhoff.1.i) #2
71 %34 = add i64 %nhoff.1.i, 20
77 %38 = add i64 %37, %nhoff.1.i
81 %40 = add i64 %nhoff.1.i, 6
82 %41 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %40) #2
83 %42 = add i64 %nhoff.1.i, 8
84 %43 = call i64 @llvm.bpf.load.word(i8* %1, i64 %42) #2
85 %44 = add i64 %nhoff.1.i, 12
86 %45 = call i64 @llvm.bpf.load.word(i8* %1, i64 %44) #2
87 %46 = add i64 %nhoff.1.i, 16
88 %47 = call i64 @llvm.bpf.load.word(i8* %1, i64 %46) #2
89 %48 = add i64 %nhoff.1.i, 20
90 %49 = call i64 @llvm.bpf.load.word(i8* %1, i64 %48) #2
91 %50 = add i64 %nhoff.1.i, 24
92 %51 = call i64 @llvm.bpf.load.word(i8* %1, i64 %50) #2
93 %52 = add i64 %nhoff.1.i, 28
94 %53 = call i64 @llvm.bpf.load.word(i8* %1, i64 %52) #2
95 %54 = add i64 %nhoff.1.i, 32
96 %55 = call i64 @llvm.bpf.load.word(i8* %1, i64 %54) #2
97 %56 = add i64 %nhoff.1.i, 36
98 %57 = call i64 @llvm.bpf.load.word(i8* %1, i64 %56) #2
103 %62 = add i64 %nhoff.1.i, 40
112 i64 4, label %137
117 %66 = call i64 @llvm.bpf.load.half(i8* %1, i64 %nhoff.2.i) #2
119 %68 = call i64 @llvm.bpf.load.half(i8* %1, i64 %67) #2
126 %73 = and i64 %72, 4
127 %74 = add i64 %nhoff.2.i, 4
131 %77 = add i64 %..i, 4
132 %nhoff.4.i = select i1 %76, i64 %..i, i64 %77
135 %80 = add i64 %nhoff.4.i, 4
136 %nhoff.4..i = select i1 %79, i64 %nhoff.4.i, i64 %80
141 %83 = add i64 %nhoff.4..i, 2
142 %84 = call i64 @llvm.bpf.load.half(i8* %1, i64 %83) #2
143 %85 = add i64 %nhoff.4..i, 4
148 %nhoff.6.i = phi i64 [ %85, %82 ], [ %nhoff.4..i, %71 ]
149 switch i64 %proto.2.i, label %flow_dissector.exit.thread [
156 %89 = call i64 @llvm.bpf.load.half(i8* %1, i64 %88) #2
159 br i1 %91, label %92, label %.thread.i4.i
163 %94 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %93) #2
165 br i1 %95, label %102, label %.thread.i4.i
167 .thread.i4.i: ; preds = %92, %87
170 %98 = call i64 @llvm.bpf.load.word(i8* %1, i64 %97) #2
172 %100 = call i64 @llvm.bpf.load.word(i8* %1, i64 %99) #2
176 ; <label>:102 ; preds = %.thread.i4.i, %92
177 %103 = phi i32 [ %101, %.thread.i4.i ], [ %63, %92 ]
178 %104 = phi i64 [ %96, %.thread.i4.i ], [ 47, %92 ]
179 %105 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %nhoff.6.i) #2
195 %115 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %114) #2
197 %117 = call i64 @llvm.bpf.load.word(i8* %1, i64 %116) #2
199 %119 = call i64 @llvm.bpf.load.word(i8* %1, i64 %118) #2
201 %121 = call i64 @llvm.bpf.load.word(i8* %1, i64 %120) #2
203 %123 = call i64 @llvm.bpf.load.word(i8* %1, i64 %122) #2
205 %125 = call i64 @llvm.bpf.load.word(i8* %1, i64 %124) #2
207 %127 = call i64 @llvm.bpf.load.word(i8* %1, i64 %126) #2
209 %129 = call i64 @llvm.bpf.load.word(i8* %1, i64 %128) #2
211 %131 = call i64 @llvm.bpf.load.word(i8* %1, i64 %130) #2
221 %139 = call i64 @llvm.bpf.load.half(i8* %1, i64 %138) #2
224 br i1 %141, label %142, label %.thread.i1.i
228 %144 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %143) #2
230 br i1 %145, label %152, label %.thread.i1.i
232 .thread.i1.i: ; preds = %142, %137
235 %148 = call i64 @llvm.bpf.load.word(i8* %1, i64 %147) #2
237 %150 = call i64 @llvm.bpf.load.word(i8* %1, i64 %149) #2
241 ; <label>:152 ; preds = %.thread.i1.i, %142
242 %153 = phi i32 [ %151, %.thread.i1.i ], [ %63, %142 ]
243 %154 = phi i64 [ %146, %.thread.i1.i ], [ 47, %142 ]
244 %155 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %nhoff.2.i) #2
260 %165 = call i64 @llvm.bpf.load.byte(i8* %1, i64 %164) #2
262 %167 = call i64 @llvm.bpf.load.word(i8* %1, i64 %166) #2
264 %169 = call i64 @llvm.bpf.load.word(i8* %1, i64 %168) #2
266 %171 = call i64 @llvm.bpf.load.word(i8* %1, i64 %170) #2
268 %173 = call i64 @llvm.bpf.load.word(i8* %1, i64 %172) #2
270 %175 = call i64 @llvm.bpf.load.word(i8* %1, i64 %174) #2
272 %177 = call i64 @llvm.bpf.load.word(i8* %1, i64 %176) #2
274 %179 = call i64 @llvm.bpf.load.word(i8* %1, i64 %178) #2
276 %181 = call i64 @llvm.bpf.load.word(i8* %1, i64 %180) #2
289 %190 = select i1 %cond.i.i, i64 4, i64 0
291 %192 = call i64 @llvm.bpf.load.word(i8* %1, i64 %191) #2
292 store i32 %188, i32* %key, align 4
294 …%194 = call i8* inttoptr (i64 1 to i8* (i8*, i8*)*)(i8* bitcast (%struct.bpf_map_def* @hash_map to…
300 %198 = atomicrmw add i64* %197, i64 1 seq_cst
301 br label %flow_dissector.exit.thread
304 store i64 1, i64* %val, align 8
307 br label %flow_dissector.exit.thread
309 flow_dissector.exit.thread: ; preds = %86, %12, %196, %199
311 ; CHECK-LABEL: bpf_prog2:
314 ; CHECK: implicit-def: %R1
316 ; CHECK-NOT: ori
317 ; CHECK: call 1 # encoding: [0x85,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
321 declare i64 @llvm.bpf.load.half(i8*, i64) #1
323 declare i64 @llvm.bpf.load.word(i8*, i64) #1
325 declare i64 @llvm.bpf.load.byte(i8*, i64) #1