Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: test/CodeGen/JS/mem-intrinsics.ll

Issue 1692803002: Remove Emscripten support (Closed) Base URL: https://chromium.googlesource.com/a/native_client/pnacl-llvm.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/CodeGen/JS/lit.local.cfg ('k') | test/CodeGen/JS/phi.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 ; RUN: llc < %s | FileCheck %s
2
3 ; llc should emit small aligned memcpy and memset inline.
4
5 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:128-n32-S128"
6 target triple = "asmjs-unknown-emscripten"
7
8 ; CHECK: test_unrolled_memcpy
9 ; CHECK: HEAP32[$d+0>>2]=HEAP32[$s+0>>2]|0;HEAP32[$d+4>>2]=HEAP32[$s+4>>2]|0;HEA P32[$d+8>>2]=HEAP32[$s+8>>2]|0;HEAP32[$d+12>>2]=HEAP32[$s+12>>2]|0;HEAP32[$d+16> >2]=HEAP32[$s+16>>2]|0;HEAP32[$d+20>>2]=HEAP32[$s+20>>2]|0;HEAP32[$d+24>>2]=HEAP 32[$s+24>>2]|0;HEAP32[$d+28>>2]=HEAP32[$s+28>>2]|0;
10 define void @test_unrolled_memcpy(i8* %d, i8* %s) {
11 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %d, i8* %s, i32 32, i32 4, i1 false)
12 ret void
13 }
14
15 ; CHECK: test_loop_memcpy
16 ; CHECK: dest=$d+0|0; src=$s+0|0; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[sr c>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0))
17 define void @test_loop_memcpy(i8* %d, i8* %s) {
18 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %d, i8* %s, i32 64, i32 4, i1 false)
19 ret void
20 }
21
22 ; CHECK: test_call_memcpy
23 ; CHECK: memcpy(($d|0),($s|0),65536)
24 define void @test_call_memcpy(i8* %d, i8* %s) {
25 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %d, i8* %s, i32 65536, i32 4, i1 fals e)
26 ret void
27 }
28
29 ; CHECK: test_unrolled_memset
30 ; CHECK: HEAP32[$d+0>>2]=0|0;HEAP32[$d+4>>2]=0|0;HEAP32[$d+8>>2]=0|0;HEAP32[$d+ 12>>2]=0|0;HEAP32[$d+16>>2]=0|0;HEAP32[$d+20>>2]=0|0;HEAP32[$d+24>>2]=0|0;HEAP32 [$d+28>>2]=0|0;
31 define void @test_unrolled_memset(i8* %d, i8* %s) {
32 call void @llvm.memset.p0i8.i32(i8* %d, i8 0, i32 32, i32 4, i1 false)
33 ret void
34 }
35
36 ; CHECK: test_loop_memset
37 ; CHECK: dest=$d+0|0; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0));
38 define void @test_loop_memset(i8* %d, i8* %s) {
39 call void @llvm.memset.p0i8.i32(i8* %d, i8 0, i32 64, i32 4, i1 false)
40 ret void
41 }
42
43 ; CHECK: test_call_memset
44 ; CHECK: memset(($d|0),0,65536)
45 define void @test_call_memset(i8* %d, i8* %s) {
46 call void @llvm.memset.p0i8.i32(i8* %d, i8 0, i32 65536, i32 4, i1 false)
47 ret void
48 }
49
50 ; Also, don't emit declarations for the intrinsic functions.
51 ; CHECK-NOT: p0i8
52
53 declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) #0
54 declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) #0
55
56 attributes #0 = { nounwind }
OLDNEW
« no previous file with comments | « test/CodeGen/JS/lit.local.cfg ('k') | test/CodeGen/JS/phi.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698