1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc < %s -mattr=-sign-ext | FileCheck %s
2
+ ; RUN: llc < %s -mattr=-sign-ext,-bulk-memory | FileCheck %s
3
3
4
4
target triple = "wasm32-unknown-unknown"
5
5
6
- define i8 @ashr (i8 %v , i8 %x ) {
7
- ; CHECK-LABEL: ashr :
8
- ; CHECK: .functype ashr (i32, i32) -> (i32)
6
+ define i8 @not_use_extend8_s (i8 %v , i8 %x ) {
7
+ ; CHECK-LABEL: not_use_extend8_s :
8
+ ; CHECK: .functype not_use_extend8_s (i32, i32) -> (i32)
9
9
; CHECK-NEXT: # %bb.0:
10
10
; CHECK-NEXT: local.get 0
11
11
; CHECK-NEXT: i32.const 24
@@ -20,3 +20,34 @@ define i8 @ashr(i8 %v, i8 %x) {
20
20
%a = ashr i8 %v , %x
21
21
ret i8 %a
22
22
}
23
+
24
+ attributes #0 = { "target-features" ="+bulk-memory," }
25
+
26
+ declare void @llvm.memset.p0.i32 (ptr , i8 , i32 , i1 )
27
+
28
+ define void @lower_bulk_memory (i8 %val ) #0 {
29
+ ; CHECK-LABEL: lower_bulk_memory:
30
+ ; CHECK: .functype lower_bulk_memory (i32) -> ()
31
+ ; CHECK-NEXT: .local i32
32
+ ; CHECK-NEXT: # %bb.0:
33
+ ; CHECK-NEXT: global.get __stack_pointer
34
+ ; CHECK-NEXT: i32.const 112
35
+ ; CHECK-NEXT: i32.sub
36
+ ; CHECK-NEXT: local.tee 1
37
+ ; CHECK-NEXT: global.set __stack_pointer
38
+ ; CHECK-NEXT: local.get 1
39
+ ; CHECK-NEXT: i32.const 12
40
+ ; CHECK-NEXT: i32.add
41
+ ; CHECK-NEXT: local.get 0
42
+ ; CHECK-NEXT: i32.const 100
43
+ ; CHECK-NEXT: call memset
44
+ ; CHECK-NEXT: drop
45
+ ; CHECK-NEXT: local.get 1
46
+ ; CHECK-NEXT: i32.const 112
47
+ ; CHECK-NEXT: i32.add
48
+ ; CHECK-NEXT: global.set __stack_pointer
49
+ ; CHECK-NEXT: # fallthrough-return
50
+ %a = alloca [100 x i8 ]
51
+ call void @llvm.memset.p0.i32 (ptr %a , i8 %val , i32 100 , i1 false )
52
+ ret void
53
+ }
0 commit comments