Index: tests_lit/llvm2ice_tests/64bit.pnacl.ll |
diff --git a/tests_lit/llvm2ice_tests/64bit.pnacl.ll b/tests_lit/llvm2ice_tests/64bit.pnacl.ll |
index d6d6afcd2a5959fdf92a62c33b75eb72ae242472..e4f4cb01b11a00fe01bc0b6f63b2e4e277b191d7 100644 |
--- a/tests_lit/llvm2ice_tests/64bit.pnacl.ll |
+++ b/tests_lit/llvm2ice_tests/64bit.pnacl.ll |
@@ -2,12 +2,9 @@ |
; particular the patterns for lowering i64 operations into constituent |
; i32 operations on x86-32. |
-; RUN: %p2i -i %s --args -O2 --verbose none \ |
-; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
-; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - | FileCheck %s |
-; RUN: %p2i -i %s --args -Om1 --verbose none \ |
-; RUN: | llvm-mc -triple=i686-none-nacl -filetype=obj \ |
-; RUN: | llvm-objdump -d --symbolize -x86-asm-syntax=intel - \ |
+; RUN: %p2i --assemble --disassemble -i %s --args -O2 --verbose none \ |
+; RUN: | FileCheck %s |
+; RUN: %p2i --assemble --disassemble -i %s --args -Om1 --verbose none \ |
; RUN: | FileCheck --check-prefix=OPTM1 %s |
@__init_array_start = internal constant [0 x i8] zeroinitializer, align 4 |
@@ -31,49 +28,49 @@ entry: |
} |
; CHECK-LABEL: pass64BitArg |
; CHECK: sub esp |
-; CHECK: mov dword ptr [esp + 4] |
-; CHECK: mov dword ptr [esp] |
-; CHECK: mov dword ptr [esp + 8], 123 |
-; CHECK: mov dword ptr [esp + 16] |
-; CHECK: mov dword ptr [esp + 12] |
-; CHECK: call ignore64BitArgNoInline |
+; CHECK: mov DWORD PTR [esp+0x4] |
+; CHECK: mov DWORD PTR [esp] |
+; CHECK: mov DWORD PTR [esp+0x8],0x7b |
+; CHECK: mov DWORD PTR [esp+0x10] |
+; CHECK: mov DWORD PTR [esp+0xc] |
+; CHECK: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
; CHECK: sub esp |
-; CHECK: mov dword ptr [esp + 4] |
-; CHECK: mov dword ptr [esp] |
-; CHECK: mov dword ptr [esp + 8], 123 |
-; CHECK: mov dword ptr [esp + 16] |
-; CHECK: mov dword ptr [esp + 12] |
-; CHECK: call ignore64BitArgNoInline |
+; CHECK: mov DWORD PTR [esp+0x4] |
+; CHECK: mov DWORD PTR [esp] |
+; CHECK: mov DWORD PTR [esp+0x8],0x7b |
+; CHECK: mov DWORD PTR [esp+0x10] |
+; CHECK: mov DWORD PTR [esp+0xc] |
+; CHECK: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
; CHECK: sub esp |
-; CHECK: mov dword ptr [esp + 4] |
-; CHECK: mov dword ptr [esp] |
-; CHECK: mov dword ptr [esp + 8], 123 |
-; CHECK: mov dword ptr [esp + 16] |
-; CHECK: mov dword ptr [esp + 12] |
-; CHECK: call ignore64BitArgNoInline |
+; CHECK: mov DWORD PTR [esp+0x4] |
+; CHECK: mov DWORD PTR [esp] |
+; CHECK: mov DWORD PTR [esp+0x8],0x7b |
+; CHECK: mov DWORD PTR [esp+0x10] |
+; CHECK: mov DWORD PTR [esp+0xc] |
+; CHECK: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
; |
; OPTM1-LABEL: pass64BitArg |
; OPTM1: sub esp |
-; OPTM1: mov dword ptr [esp + 4] |
-; OPTM1: mov dword ptr [esp] |
-; OPTM1: mov dword ptr [esp + 8], 123 |
-; OPTM1: mov dword ptr [esp + 16] |
-; OPTM1: mov dword ptr [esp + 12] |
-; OPTM1: call ignore64BitArgNoInline |
+; OPTM1: mov DWORD PTR [esp+0x4] |
+; OPTM1: mov DWORD PTR [esp] |
+; OPTM1: mov DWORD PTR [esp+0x8],0x7b |
+; OPTM1: mov DWORD PTR [esp+0x10] |
+; OPTM1: mov DWORD PTR [esp+0xc] |
+; OPTM1: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
; OPTM1: sub esp |
-; OPTM1: mov dword ptr [esp + 4] |
-; OPTM1: mov dword ptr [esp] |
-; OPTM1: mov dword ptr [esp + 8], 123 |
-; OPTM1: mov dword ptr [esp + 16] |
-; OPTM1: mov dword ptr [esp + 12] |
-; OPTM1: call ignore64BitArgNoInline |
+; OPTM1: mov DWORD PTR [esp+0x4] |
+; OPTM1: mov DWORD PTR [esp] |
+; OPTM1: mov DWORD PTR [esp+0x8],0x7b |
+; OPTM1: mov DWORD PTR [esp+0x10] |
+; OPTM1: mov DWORD PTR [esp+0xc] |
+; OPTM1: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
; OPTM1: sub esp |
-; OPTM1: mov dword ptr [esp + 4] |
-; OPTM1: mov dword ptr [esp] |
-; OPTM1: mov dword ptr [esp + 8], 123 |
-; OPTM1: mov dword ptr [esp + 16] |
-; OPTM1: mov dword ptr [esp + 12] |
-; OPTM1: call ignore64BitArgNoInline |
+; OPTM1: mov DWORD PTR [esp+0x4] |
+; OPTM1: mov DWORD PTR [esp] |
+; OPTM1: mov DWORD PTR [esp+0x8],0x7b |
+; OPTM1: mov DWORD PTR [esp+0x10] |
+; OPTM1: mov DWORD PTR [esp+0xc] |
+; OPTM1: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
declare i32 @ignore64BitArgNoInline(i64, i32, i64) |
@@ -84,50 +81,50 @@ entry: |
} |
; CHECK-LABEL: pass64BitConstArg |
; CHECK: sub esp |
-; CHECK: mov dword ptr [esp + 4] |
-; CHECK-NEXT: mov dword ptr [esp] |
-; CHECK-NEXT: mov dword ptr [esp + 8], 123 |
+; CHECK: mov DWORD PTR [esp+0x4] |
+; CHECK-NEXT: mov DWORD PTR [esp] |
+; CHECK-NEXT: mov DWORD PTR [esp+0x8],0x7b |
; Bundle padding might be added (so not using -NEXT). |
-; CHECK: mov dword ptr [esp + 16], 3735928559 |
-; CHECK-NEXT: mov dword ptr [esp + 12], 305419896 |
+; CHECK: mov DWORD PTR [esp+0x10],0xdeadbeef |
+; CHECK-NEXT: mov DWORD PTR [esp+0xc],0x12345678 |
; Bundle padding will push the call down. |
; CHECK-NOT: mov |
-; CHECK: call ignore64BitArgNoInline |
+; CHECK: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
; |
; OPTM1-LABEL: pass64BitConstArg |
; OPTM1: sub esp |
-; OPTM1: mov dword ptr [esp + 4] |
-; OPTM1-NEXT: mov dword ptr [esp] |
-; OPTM1-NEXT: mov dword ptr [esp + 8], 123 |
+; OPTM1: mov DWORD PTR [esp+0x4] |
+; OPTM1-NEXT: mov DWORD PTR [esp] |
+; OPTM1-NEXT: mov DWORD PTR [esp+0x8],0x7b |
; Bundle padding might be added (so not using -NEXT). |
-; OPTM1: mov dword ptr [esp + 16], 3735928559 |
-; OPTM1-NEXT: mov dword ptr [esp + 12], 305419896 |
+; OPTM1: mov DWORD PTR [esp+0x10],0xdeadbeef |
+; OPTM1-NEXT: mov DWORD PTR [esp+0xc],0x12345678 |
; OPTM1-NOT: mov |
-; OPTM1: call ignore64BitArgNoInline |
+; OPTM1: call {{.*}} R_{{.*}} ignore64BitArgNoInline |
define internal i64 @return64BitArg(i64 %a) { |
entry: |
ret i64 %a |
} |
; CHECK-LABEL: return64BitArg |
-; CHECK: mov {{.*}}, dword ptr [esp + 4] |
-; CHECK: mov {{.*}}, dword ptr [esp + 8] |
+; CHECK: mov {{.*}},DWORD PTR [esp+0x4] |
+; CHECK: mov {{.*}},DWORD PTR [esp+0x8] |
; |
; OPTM1-LABEL: return64BitArg |
-; OPTM1: mov {{.*}}, dword ptr [esp + 4] |
-; OPTM1: mov {{.*}}, dword ptr [esp + 8] |
+; OPTM1: mov {{.*}},DWORD PTR [esp+0x4] |
+; OPTM1: mov {{.*}},DWORD PTR [esp+0x8] |
define internal i64 @return64BitConst() { |
entry: |
ret i64 -2401053092306725256 |
} |
; CHECK-LABEL: return64BitConst |
-; CHECK: mov eax, 305419896 |
-; CHECK: mov edx, 3735928559 |
+; CHECK: mov eax,0x12345678 |
+; CHECK: mov edx,0xdeadbeef |
; |
; OPTM1-LABEL: return64BitConst |
-; OPTM1: mov eax, 305419896 |
-; OPTM1: mov edx, 3735928559 |
+; OPTM1: mov eax,0x12345678 |
+; OPTM1: mov edx,0xdeadbeef |
define internal i64 @add64BitSigned(i64 %a, i64 %b) { |
entry: |
@@ -225,10 +222,10 @@ entry: |
ret i64 %div |
} |
; CHECK-LABEL: div64BitSigned |
-; CHECK: call __divdi3 |
+; CHECK: call {{.*}} R_{{.*}} __divdi3 |
; OPTM1-LABEL: div64BitSigned |
-; OPTM1: call __divdi3 |
+; OPTM1: call {{.*}} R_{{.*}} __divdi3 |
define internal i64 @div64BitSignedConst(i64 %a) { |
entry: |
@@ -236,14 +233,14 @@ entry: |
ret i64 %div |
} |
; CHECK-LABEL: div64BitSignedConst |
-; CHECK: mov dword ptr [esp + 12], 2874 |
-; CHECK: mov dword ptr [esp + 8], 1942892530 |
-; CHECK: call __divdi3 |
+; CHECK: mov DWORD PTR [esp+0xc],0xb3a |
+; CHECK: mov DWORD PTR [esp+0x8],0x73ce2ff2 |
+; CHECK: call {{.*}} R_{{.*}} __divdi3 |
; |
; OPTM1-LABEL: div64BitSignedConst |
-; OPTM1: mov dword ptr [esp + 12], 2874 |
-; OPTM1: mov dword ptr [esp + 8], 1942892530 |
-; OPTM1: call __divdi3 |
+; OPTM1: mov DWORD PTR [esp+0xc],0xb3a |
+; OPTM1: mov DWORD PTR [esp+0x8],0x73ce2ff2 |
+; OPTM1: call {{.*}} R_{{.*}} __divdi3 |
define internal i64 @div64BitUnsigned(i64 %a, i64 %b) { |
entry: |
@@ -251,10 +248,10 @@ entry: |
ret i64 %div |
} |
; CHECK-LABEL: div64BitUnsigned |
-; CHECK: call __udivdi3 |
+; CHECK: call {{.*}} R_{{.*}} __udivdi3 |
; |
; OPTM1-LABEL: div64BitUnsigned |
-; OPTM1: call __udivdi3 |
+; OPTM1: call {{.*}} R_{{.*}} __udivdi3 |
define internal i64 @rem64BitSigned(i64 %a, i64 %b) { |
entry: |
@@ -262,10 +259,10 @@ entry: |
ret i64 %rem |
} |
; CHECK-LABEL: rem64BitSigned |
-; CHECK: call __moddi3 |
+; CHECK: call {{.*}} R_{{.*}} __moddi3 |
; |
; OPTM1-LABEL: rem64BitSigned |
-; OPTM1: call __moddi3 |
+; OPTM1: call {{.*}} R_{{.*}} __moddi3 |
define internal i64 @rem64BitUnsigned(i64 %a, i64 %b) { |
entry: |
@@ -273,10 +270,10 @@ entry: |
ret i64 %rem |
} |
; CHECK-LABEL: rem64BitUnsigned |
-; CHECK: call __umoddi3 |
+; CHECK: call {{.*}} R_{{.*}} __umoddi3 |
; |
; OPTM1-LABEL: rem64BitUnsigned |
-; OPTM1: call __umoddi3 |
+; OPTM1: call {{.*}} R_{{.*}} __umoddi3 |
define internal i64 @shl64BitSigned(i64 %a, i64 %b) { |
entry: |
@@ -286,13 +283,13 @@ entry: |
; CHECK-LABEL: shl64BitSigned |
; CHECK: shld |
; CHECK: shl e |
-; CHECK: test {{.*}}, 32 |
+; CHECK: test {{.*}},0x20 |
; CHECK: je |
; |
; OPTM1-LABEL: shl64BitSigned |
; OPTM1: shld |
; OPTM1: shl e |
-; OPTM1: test {{.*}}, 32 |
+; OPTM1: test {{.*}},0x20 |
; OPTM1: je |
define internal i32 @shl64BitSignedTrunc(i64 %a, i64 %b) { |
@@ -304,13 +301,13 @@ entry: |
; CHECK-LABEL: shl64BitSignedTrunc |
; CHECK: mov |
; CHECK: shl e |
-; CHECK: test {{.*}}, 32 |
+; CHECK: test {{.*}},0x20 |
; CHECK: je |
; |
; OPTM1-LABEL: shl64BitSignedTrunc |
; OPTM1: shld |
; OPTM1: shl e |
-; OPTM1: test {{.*}}, 32 |
+; OPTM1: test {{.*}},0x20 |
; OPTM1: je |
define internal i64 @shl64BitUnsigned(i64 %a, i64 %b) { |
@@ -321,13 +318,13 @@ entry: |
; CHECK-LABEL: shl64BitUnsigned |
; CHECK: shld |
; CHECK: shl e |
-; CHECK: test {{.*}}, 32 |
+; CHECK: test {{.*}},0x20 |
; CHECK: je |
; |
; OPTM1-LABEL: shl64BitUnsigned |
; OPTM1: shld |
; OPTM1: shl e |
-; OPTM1: test {{.*}}, 32 |
+; OPTM1: test {{.*}},0x20 |
; OPTM1: je |
define internal i64 @shr64BitSigned(i64 %a, i64 %b) { |
@@ -338,16 +335,16 @@ entry: |
; CHECK-LABEL: shr64BitSigned |
; CHECK: shrd |
; CHECK: sar |
-; CHECK: test {{.*}}, 32 |
+; CHECK: test {{.*}},0x20 |
; CHECK: je |
-; CHECK: sar {{.*}}, 31 |
+; CHECK: sar {{.*}},0x1f |
; |
; OPTM1-LABEL: shr64BitSigned |
; OPTM1: shrd |
; OPTM1: sar |
-; OPTM1: test {{.*}}, 32 |
+; OPTM1: test {{.*}},0x20 |
; OPTM1: je |
-; OPTM1: sar {{.*}}, 31 |
+; OPTM1: sar {{.*}},0x1f |
define internal i32 @shr64BitSignedTrunc(i64 %a, i64 %b) { |
entry: |
@@ -358,15 +355,15 @@ entry: |
; CHECK-LABEL: shr64BitSignedTrunc |
; CHECK: shrd |
; CHECK: sar |
-; CHECK: test {{.*}}, 32 |
+; CHECK: test {{.*}},0x20 |
; CHECK: je |
; |
; OPTM1-LABEL: shr64BitSignedTrunc |
; OPTM1: shrd |
; OPTM1: sar |
-; OPTM1: test {{.*}}, 32 |
+; OPTM1: test {{.*}},0x20 |
; OPTM1: je |
-; OPTM1: sar {{.*}}, 31 |
+; OPTM1: sar {{.*}},0x1f |
define internal i64 @shr64BitUnsigned(i64 %a, i64 %b) { |
entry: |
@@ -376,13 +373,13 @@ entry: |
; CHECK-LABEL: shr64BitUnsigned |
; CHECK: shrd |
; CHECK: shr |
-; CHECK: test {{.*}}, 32 |
+; CHECK: test {{.*}},0x20 |
; CHECK: je |
; |
; OPTM1-LABEL: shr64BitUnsigned |
; OPTM1: shrd |
; OPTM1: shr |
-; OPTM1: test {{.*}}, 32 |
+; OPTM1: test {{.*}},0x20 |
; OPTM1: je |
define internal i32 @shr64BitUnsignedTrunc(i64 %a, i64 %b) { |
@@ -394,13 +391,13 @@ entry: |
; CHECK-LABEL: shr64BitUnsignedTrunc |
; CHECK: shrd |
; CHECK: shr |
-; CHECK: test {{.*}}, 32 |
+; CHECK: test {{.*}},0x20 |
; CHECK: je |
; |
; OPTM1-LABEL: shr64BitUnsignedTrunc |
; OPTM1: shrd |
; OPTM1: shr |
-; OPTM1: test {{.*}}, 32 |
+; OPTM1: test {{.*}},0x20 |
; OPTM1: je |
define internal i64 @and64BitSigned(i64 %a, i64 %b) { |
@@ -487,10 +484,10 @@ entry: |
ret i32 %conv |
} |
; CHECK-LABEL: trunc64To32Signed |
-; CHECK: mov eax, dword ptr [esp + 4] |
+; CHECK: mov eax,DWORD PTR [esp+0x4] |
; |
; OPTM1-LABEL: trunc64To32Signed |
-; OPTM1: mov eax, dword ptr [esp + |
+; OPTM1: mov eax,DWORD PTR [esp+ |
define internal i32 @trunc64To16Signed(i64 %a) { |
entry: |
@@ -499,11 +496,11 @@ entry: |
ret i32 %conv.ret_ext |
} |
; CHECK-LABEL: trunc64To16Signed |
-; CHECK: mov eax, dword ptr [esp + 4] |
-; CHECK-NEXT: movsx eax, ax |
+; CHECK: mov eax,DWORD PTR [esp+0x4] |
+; CHECK-NEXT: movsx eax,ax |
; |
; OPTM1-LABEL: trunc64To16Signed |
-; OPTM1: mov eax, dword ptr [esp + |
+; OPTM1: mov eax,DWORD PTR [esp+ |
; OPTM1: movsx eax, |
define internal i32 @trunc64To8Signed(i64 %a) { |
@@ -513,11 +510,11 @@ entry: |
ret i32 %conv.ret_ext |
} |
; CHECK-LABEL: trunc64To8Signed |
-; CHECK: mov eax, dword ptr [esp + 4] |
-; CHECK-NEXT: movsx eax, al |
+; CHECK: mov eax,DWORD PTR [esp+0x4] |
+; CHECK-NEXT: movsx eax,al |
; |
; OPTM1-LABEL: trunc64To8Signed |
-; OPTM1: mov eax, dword ptr [esp + |
+; OPTM1: mov eax,DWORD PTR [esp+ |
; OPTM1: movsx eax, |
define internal i32 @trunc64To32SignedConst() { |
@@ -526,10 +523,10 @@ entry: |
ret i32 %conv |
} |
; CHECK-LABEL: trunc64To32SignedConst |
-; CHECK: mov eax, 1942892530 |
+; CHECK: mov eax,0x73ce2ff2 |
; |
; OPTM1-LABEL: trunc64To32SignedConst |
-; OPTM1: mov eax, 1942892530 |
+; OPTM1: mov eax,0x73ce2ff2 |
define internal i32 @trunc64To16SignedConst() { |
entry: |
@@ -538,11 +535,11 @@ entry: |
ret i32 %conv.ret_ext |
} |
; CHECK-LABEL: trunc64To16SignedConst |
-; CHECK: mov eax, 1942892530 |
-; CHECK: movsx eax, ax |
+; CHECK: mov eax,0x73ce2ff2 |
+; CHECK: movsx eax,ax |
; |
; OPTM1-LABEL: trunc64To16SignedConst |
-; OPTM1: mov eax, 1942892530 |
+; OPTM1: mov eax,0x73ce2ff2 |
; OPTM1: movsx eax, |
define internal i32 @trunc64To32Unsigned(i64 %a) { |
@@ -551,10 +548,10 @@ entry: |
ret i32 %conv |
} |
; CHECK-LABEL: trunc64To32Unsigned |
-; CHECK: mov eax, dword ptr [esp + 4] |
+; CHECK: mov eax,DWORD PTR [esp+0x4] |
; |
; OPTM1-LABEL: trunc64To32Unsigned |
-; OPTM1: mov eax, dword ptr [esp + |
+; OPTM1: mov eax,DWORD PTR [esp+ |
define internal i32 @trunc64To16Unsigned(i64 %a) { |
entry: |
@@ -563,11 +560,11 @@ entry: |
ret i32 %conv.ret_ext |
} |
; CHECK-LABEL: trunc64To16Unsigned |
-; CHECK: mov eax, dword ptr [esp + 4] |
-; CHECK-NEXT: movzx eax, ax |
+; CHECK: mov eax,DWORD PTR [esp+0x4] |
+; CHECK-NEXT: movzx eax,ax |
; |
; OPTM1-LABEL: trunc64To16Unsigned |
-; OPTM1: mov eax, dword ptr [esp + |
+; OPTM1: mov eax,DWORD PTR [esp+ |
; OPTM1: movzx eax, |
define internal i32 @trunc64To8Unsigned(i64 %a) { |
@@ -577,11 +574,11 @@ entry: |
ret i32 %conv.ret_ext |
} |
; CHECK-LABEL: trunc64To8Unsigned |
-; CHECK: mov eax, dword ptr [esp + 4] |
-; CHECK-NEXT: movzx eax, al |
+; CHECK: mov eax,DWORD PTR [esp+0x4] |
+; CHECK-NEXT: movzx eax,al |
; |
; OPTM1-LABEL: trunc64To8Unsigned |
-; OPTM1: mov eax, dword ptr [esp + |
+; OPTM1: mov eax,DWORD PTR [esp+ |
; OPTM1: movzx eax, |
define internal i32 @trunc64To1(i64 %a) { |
@@ -592,14 +589,14 @@ entry: |
ret i32 %tobool.ret_ext |
} |
; CHECK-LABEL: trunc64To1 |
-; CHECK: mov eax, dword ptr [esp + 4] |
-; CHECK: and eax, 1 |
-; CHECK: and eax, 1 |
+; CHECK: mov eax,DWORD PTR [esp+0x4] |
+; CHECK: and eax,0x1 |
+; CHECK: and eax,0x1 |
; |
; OPTM1-LABEL: trunc64To1 |
-; OPTM1: mov eax, dword ptr [esp + |
-; OPTM1: and eax, 1 |
-; OPTM1: and eax, 1 |
+; OPTM1: mov eax,DWORD PTR [esp+ |
+; OPTM1: and eax,0x1 |
+; OPTM1: and eax,0x1 |
define internal i64 @sext32To64(i32 %a) { |
entry: |
@@ -608,11 +605,11 @@ entry: |
} |
; CHECK-LABEL: sext32To64 |
; CHECK: mov |
-; CHECK: sar {{.*}}, 31 |
+; CHECK: sar {{.*}},0x1f |
; |
; OPTM1-LABEL: sext32To64 |
; OPTM1: mov |
-; OPTM1: sar {{.*}}, 31 |
+; OPTM1: sar {{.*}},0x1f |
define internal i64 @sext16To64(i32 %a) { |
entry: |
@@ -622,11 +619,11 @@ entry: |
} |
; CHECK-LABEL: sext16To64 |
; CHECK: movsx |
-; CHECK: sar {{.*}}, 31 |
+; CHECK: sar {{.*}},0x1f |
; |
; OPTM1-LABEL: sext16To64 |
; OPTM1: movsx |
-; OPTM1: sar {{.*}}, 31 |
+; OPTM1: sar {{.*}},0x1f |
define internal i64 @sext8To64(i32 %a) { |
entry: |
@@ -636,11 +633,11 @@ entry: |
} |
; CHECK-LABEL: sext8To64 |
; CHECK: movsx |
-; CHECK: sar {{.*}}, 31 |
+; CHECK: sar {{.*}},0x1f |
; |
; OPTM1-LABEL: sext8To64 |
; OPTM1: movsx |
-; OPTM1: sar {{.*}}, 31 |
+; OPTM1: sar {{.*}},0x1f |
define internal i64 @sext1To64(i32 %a) { |
entry: |
@@ -650,13 +647,13 @@ entry: |
} |
; CHECK-LABEL: sext1To64 |
; CHECK: mov |
-; CHECK: shl {{.*}}, 31 |
-; CHECK: sar {{.*}}, 31 |
+; CHECK: shl {{.*}},0x1f |
+; CHECK: sar {{.*}},0x1f |
; |
; OPTM1-LABEL: sext1To64 |
; OPTM1: mov |
-; OPTM1: shl {{.*}}, 31 |
-; OPTM1: sar {{.*}}, 31 |
+; OPTM1: shl {{.*}},0x1f |
+; OPTM1: sar {{.*}},0x1f |
define internal i64 @zext32To64(i32 %a) { |
entry: |
@@ -665,11 +662,11 @@ entry: |
} |
; CHECK-LABEL: zext32To64 |
; CHECK: mov |
-; CHECK: mov {{.*}}, 0 |
+; CHECK: mov {{.*}},0x0 |
; |
; OPTM1-LABEL: zext32To64 |
; OPTM1: mov |
-; OPTM1: mov {{.*}}, 0 |
+; OPTM1: mov {{.*}},0x0 |
define internal i64 @zext16To64(i32 %a) { |
entry: |
@@ -679,11 +676,11 @@ entry: |
} |
; CHECK-LABEL: zext16To64 |
; CHECK: movzx |
-; CHECK: mov {{.*}}, 0 |
+; CHECK: mov {{.*}},0x0 |
; |
; OPTM1-LABEL: zext16To64 |
; OPTM1: movzx |
-; OPTM1: mov {{.*}}, 0 |
+; OPTM1: mov {{.*}},0x0 |
define internal i64 @zext8To64(i32 %a) { |
entry: |
@@ -693,11 +690,11 @@ entry: |
} |
; CHECK-LABEL: zext8To64 |
; CHECK: movzx |
-; CHECK: mov {{.*}}, 0 |
+; CHECK: mov {{.*}},0x0 |
; |
; OPTM1-LABEL: zext8To64 |
; OPTM1: movzx |
-; OPTM1: mov {{.*}}, 0 |
+; OPTM1: mov {{.*}},0x0 |
define internal i64 @zext1To64(i32 %a) { |
entry: |
@@ -706,12 +703,12 @@ entry: |
ret i64 %conv |
} |
; CHECK-LABEL: zext1To64 |
-; CHECK: and {{.*}}, 1 |
-; CHECK: mov {{.*}}, 0 |
+; CHECK: and {{.*}},0x1 |
+; CHECK: mov {{.*}},0x0 |
; |
; OPTM1-LABEL: zext1To64 |
-; OPTM1: and {{.*}}, 1 |
-; OPTM1: mov {{.*}}, 0 |
+; OPTM1: and {{.*}},0x1 |
+; OPTM1: mov {{.*}},0x0 |
define internal void @icmpEq64(i64 %a, i64 %b, i64 %c, i64 %d) { |
entry: |
@@ -1142,13 +1139,13 @@ entry: |
ret i64 %v0 |
} |
; CHECK-LABEL: load64 |
-; CHECK: mov e[[REGISTER:[a-z]+]], dword ptr [esp + 4] |
-; CHECK-NEXT: mov {{.*}}, dword ptr [e[[REGISTER]]] |
-; CHECK-NEXT: mov {{.*}}, dword ptr [e[[REGISTER]] + 4] |
+; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4] |
+; CHECK-NEXT: mov {{.*}},DWORD PTR [e[[REGISTER]]] |
+; CHECK-NEXT: mov {{.*}},DWORD PTR [e[[REGISTER]]+0x4] |
; |
; OPTM1-LABEL: load64 |
-; OPTM1: mov e{{..}}, dword ptr [e{{..}}] |
-; OPTM1: mov e{{..}}, dword ptr [e{{..}} + 4] |
+; OPTM1: mov e{{..}},DWORD PTR [e{{..}}] |
+; OPTM1: mov e{{..}},DWORD PTR [e{{..}}+0x4] |
define internal void @store64(i32 %a, i64 %value) { |
entry: |
@@ -1157,13 +1154,13 @@ entry: |
ret void |
} |
; CHECK-LABEL: store64 |
-; CHECK: mov e[[REGISTER:[a-z]+]], dword ptr [esp + 4] |
-; CHECK: mov dword ptr [e[[REGISTER]] + 4], |
-; CHECK: mov dword ptr [e[[REGISTER]]], |
+; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4] |
+; CHECK: mov DWORD PTR [e[[REGISTER]]+0x4], |
+; CHECK: mov DWORD PTR [e[[REGISTER]]], |
; |
; OPTM1-LABEL: store64 |
-; OPTM1: mov dword ptr [e[[REGISTER:[a-z]+]] + 4], |
-; OPTM1: mov dword ptr [e[[REGISTER]]], |
+; OPTM1: mov DWORD PTR [e[[REGISTER:[a-z]+]]+0x4], |
+; OPTM1: mov DWORD PTR [e[[REGISTER]]], |
define internal void @store64Const(i32 %a) { |
entry: |
@@ -1172,13 +1169,13 @@ entry: |
ret void |
} |
; CHECK-LABEL: store64Const |
-; CHECK: mov e[[REGISTER:[a-z]+]], dword ptr [esp + 4] |
-; CHECK: mov dword ptr [e[[REGISTER]] + 4], 3735928559 |
-; CHECK: mov dword ptr [e[[REGISTER]]], 305419896 |
+; CHECK: mov e[[REGISTER:[a-z]+]],DWORD PTR [esp+0x4] |
+; CHECK: mov DWORD PTR [e[[REGISTER]]+0x4],0xdeadbeef |
+; CHECK: mov DWORD PTR [e[[REGISTER]]],0x12345678 |
; |
; OPTM1-LABEL: store64Const |
-; OPTM1: mov dword ptr [e[[REGISTER:[a-z]+]] + 4], 3735928559 |
-; OPTM1: mov dword ptr [e[[REGISTER]]], 305419896 |
+; OPTM1: mov DWORD PTR [e[[REGISTER:[a-z]+]]+0x4],0xdeadbeef |
+; OPTM1: mov DWORD PTR [e[[REGISTER]]],0x12345678 |
define internal i64 @select64VarVar(i64 %a, i64 %b) { |
entry: |
@@ -1275,9 +1272,9 @@ if.end3: ; preds = %if.then2, %if.end |
; The following checks are not strictly necessary since one of the RUN |
; lines actually runs the output through the assembler. |
; CHECK-LABEL: icmpEq64Imm |
-; CHECK-NOT: cmp {{[0-9]+}}, |
+; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, |
; OPTM1-LABEL: icmpEq64Imm |
-; OPTM1-LABEL-NOT: cmp {{[0-9]+}}, |
+; OPTM1-LABEL-NOT: cmp 0x{{[0-9a-f]+}}, |
define internal void @icmpLt64Imm() { |
entry: |
@@ -1302,6 +1299,6 @@ if.end3: ; preds = %if.then2, %if.end |
; The following checks are not strictly necessary since one of the RUN |
; lines actually runs the output through the assembler. |
; CHECK-LABEL: icmpLt64Imm |
-; CHECK-NOT: cmp {{[0-9]+}}, |
+; CHECK-NOT: cmp 0x{{[0-9a-f]+}}, |
; OPTM1-LABEL: icmpLt64Imm |
-; OPTM1-NOT: cmp {{[0-9]+}}, |
+; OPTM1-NOT: cmp 0x{{[0-9a-f]+}}, |