comparison test/CodeGen/X86/memcmp.ll @ 120:1172e4bd9c6f

update 4.0.0
author mir3636
date Fri, 25 Nov 2016 19:14:25 +0900
parents afa8332a0e37
children 803732b1fca8
comparison
equal deleted inserted replaced
101:34baf5011add 120:1172e4bd9c6f
21 21
22 return: ; preds = %entry 22 return: ; preds = %entry
23 ret void 23 ret void
24 ; CHECK-LABEL: memcmp2: 24 ; CHECK-LABEL: memcmp2:
25 ; CHECK: movzwl 25 ; CHECK: movzwl
26 ; CHECK-NEXT: movzwl 26 ; CHECK-NEXT: cmpw
27 ; CHECK-NEXT: cmpl
28 ; NOBUILTIN-LABEL: memcmp2: 27 ; NOBUILTIN-LABEL: memcmp2:
29 ; NOBUILTIN: callq 28 ; NOBUILTIN: callq
30 } 29 }
31 30
32 define void @memcmp2a(i8* %X, i32* nocapture %P) nounwind { 31 define void @memcmp2a(i8* %X, i32* nocapture %P) nounwind {
44 ; CHECK-LABEL: memcmp2a: 43 ; CHECK-LABEL: memcmp2a:
45 ; CHECK: movzwl 44 ; CHECK: movzwl
46 ; CHECK-NEXT: cmpl $28527, 45 ; CHECK-NEXT: cmpl $28527,
47 } 46 }
48 47
48 define void @memcmp2nb(i8* %X, i8* %Y, i32* nocapture %P) nounwind {
49 entry:
50 %0 = tail call i32 (...) @memcmp(i8* %X, i8* %Y, i32 2) nounwind nobuiltin ; <i32> [#uses=1]
51 %1 = icmp eq i32 %0, 0 ; <i1> [#uses=1]
52 br i1 %1, label %return, label %bb
53
54 bb: ; preds = %entry
55 store i32 4, i32* %P, align 4
56 ret void
57
58 return: ; preds = %entry
59 ret void
60 ; CHECK-LABEL: memcmp2nb:
61 ; CHECK: callq
62 }
49 63
50 define void @memcmp4(i8* %X, i8* %Y, i32* nocapture %P) nounwind { 64 define void @memcmp4(i8* %X, i8* %Y, i32* nocapture %P) nounwind {
51 entry: 65 entry:
52 %0 = tail call i32 (...) @memcmp(i8* %X, i8* %Y, i32 4) nounwind ; <i32> [#uses=1] 66 %0 = tail call i32 (...) @memcmp(i8* %X, i8* %Y, i32 4) nounwind ; <i32> [#uses=1]
53 %1 = icmp eq i32 %0, 0 ; <i1> [#uses=1] 67 %1 = icmp eq i32 %0, 0 ; <i1> [#uses=1]