| 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 859d6575541a9c2fe515476e6cd36d8b63b96917..0989b96a8d4968877481bcffd2a61074e51b0448 100644
|
| --- a/tests_lit/llvm2ice_tests/64bit.pnacl.ll
|
| +++ b/tests_lit/llvm2ice_tests/64bit.pnacl.ll
|
| @@ -32,7 +32,7 @@ entry:
|
| %add3 = add i32 %add, %call2
|
| ret i32 %add3
|
| }
|
| -; CHECK: pass64BitArg:
|
| +; CHECK-LABEL: pass64BitArg
|
| ; CHECK: sub esp
|
| ; CHECK: mov dword ptr [esp+4]
|
| ; CHECK: mov dword ptr [esp]
|
| @@ -55,7 +55,7 @@ entry:
|
| ; CHECK: mov dword ptr [esp+12]
|
| ; CHECK: call ignore64BitArgNoInline
|
| ;
|
| -; OPTM1: pass64BitArg:
|
| +; OPTM1-LABEL: pass64BitArg
|
| ; OPTM1: sub esp
|
| ; OPTM1: mov dword ptr [esp+4]
|
| ; OPTM1: mov dword ptr [esp]
|
| @@ -85,7 +85,7 @@ entry:
|
| %call = call i32 @ignore64BitArgNoInline(i64 %a, i32 123, i64 -2401053092306725256)
|
| ret i32 %call
|
| }
|
| -; CHECK: pass64BitConstArg:
|
| +; CHECK-LABEL: pass64BitConstArg
|
| ; CHECK: sub esp
|
| ; CHECK: mov dword ptr [esp+4]
|
| ; CHECK-NEXT: mov dword ptr [esp]
|
| @@ -94,7 +94,7 @@ entry:
|
| ; CHECK-NEXT: mov dword ptr [esp+12], 305419896
|
| ; CHECK-NEXT: call ignore64BitArgNoInline
|
| ;
|
| -; OPTM1: pass64BitConstArg:
|
| +; OPTM1-LABEL: pass64BitConstArg
|
| ; OPTM1: sub esp
|
| ; OPTM1: mov dword ptr [esp+4]
|
| ; OPTM1-NEXT: mov dword ptr [esp]
|
| @@ -107,12 +107,12 @@ define internal i64 @return64BitArg(i64 %a) {
|
| entry:
|
| ret i64 %a
|
| }
|
| -; CHECK: return64BitArg:
|
| +; CHECK-LABEL: return64BitArg
|
| ; CHECK: mov {{.*}}, dword ptr [esp+4]
|
| ; CHECK: mov {{.*}}, dword ptr [esp+8]
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: return64BitArg:
|
| +; OPTM1-LABEL: return64BitArg
|
| ; OPTM1: mov {{.*}}, dword ptr [esp+4]
|
| ; OPTM1: mov {{.*}}, dword ptr [esp+8]
|
| ; OPTM1: ret
|
| @@ -121,12 +121,12 @@ define internal i64 @return64BitConst() {
|
| entry:
|
| ret i64 -2401053092306725256
|
| }
|
| -; CHECK: return64BitConst:
|
| +; CHECK-LABEL: return64BitConst
|
| ; CHECK: mov eax, 305419896
|
| ; CHECK: mov edx, 3735928559
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: return64BitConst:
|
| +; OPTM1-LABEL: return64BitConst
|
| ; OPTM1: mov eax, 305419896
|
| ; OPTM1: mov edx, 3735928559
|
| ; OPTM1: ret
|
| @@ -136,12 +136,12 @@ entry:
|
| %add = add i64 %b, %a
|
| ret i64 %add
|
| }
|
| -; CHECK: add64BitSigned:
|
| +; CHECK-LABEL: add64BitSigned
|
| ; CHECK: add
|
| ; CHECK: adc
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: add64BitSigned:
|
| +; OPTM1-LABEL: add64BitSigned
|
| ; OPTM1: add
|
| ; OPTM1: adc
|
| ; OPTM1: ret
|
| @@ -151,12 +151,12 @@ entry:
|
| %add = add i64 %b, %a
|
| ret i64 %add
|
| }
|
| -; CHECK: add64BitUnsigned:
|
| +; CHECK-LABEL: add64BitUnsigned
|
| ; CHECK: add
|
| ; CHECK: adc
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: add64BitUnsigned:
|
| +; OPTM1-LABEL: add64BitUnsigned
|
| ; OPTM1: add
|
| ; OPTM1: adc
|
| ; OPTM1: ret
|
| @@ -166,12 +166,12 @@ entry:
|
| %sub = sub i64 %a, %b
|
| ret i64 %sub
|
| }
|
| -; CHECK: sub64BitSigned:
|
| +; CHECK-LABEL: sub64BitSigned
|
| ; CHECK: sub
|
| ; CHECK: sbb
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: sub64BitSigned:
|
| +; OPTM1-LABEL: sub64BitSigned
|
| ; OPTM1: sub
|
| ; OPTM1: sbb
|
| ; OPTM1: ret
|
| @@ -181,12 +181,12 @@ entry:
|
| %sub = sub i64 %a, %b
|
| ret i64 %sub
|
| }
|
| -; CHECK: sub64BitUnsigned:
|
| +; CHECK-LABEL: sub64BitUnsigned
|
| ; CHECK: sub
|
| ; CHECK: sbb
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: sub64BitUnsigned:
|
| +; OPTM1-LABEL: sub64BitUnsigned
|
| ; OPTM1: sub
|
| ; OPTM1: sbb
|
| ; OPTM1: ret
|
| @@ -196,7 +196,7 @@ entry:
|
| %mul = mul i64 %b, %a
|
| ret i64 %mul
|
| }
|
| -; CHECK: mul64BitSigned:
|
| +; CHECK-LABEL: mul64BitSigned
|
| ; CHECK: imul
|
| ; CHECK: imul
|
| ; CHECK: mul
|
| @@ -204,7 +204,7 @@ entry:
|
| ; CHECK: add
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: mul64BitSigned:
|
| +; OPTM1-LABEL: mul64BitSigned
|
| ; OPTM1: imul
|
| ; OPTM1: imul
|
| ; OPTM1: mul
|
| @@ -217,7 +217,7 @@ entry:
|
| %mul = mul i64 %b, %a
|
| ret i64 %mul
|
| }
|
| -; CHECK: mul64BitUnsigned:
|
| +; CHECK-LABEL: mul64BitUnsigned
|
| ; CHECK: imul
|
| ; CHECK: imul
|
| ; CHECK: mul
|
| @@ -225,7 +225,7 @@ entry:
|
| ; CHECK: add
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: mul64BitUnsigned:
|
| +; OPTM1-LABEL: mul64BitUnsigned
|
| ; OPTM1: imul
|
| ; OPTM1: imul
|
| ; OPTM1: mul
|
| @@ -238,11 +238,11 @@ entry:
|
| %div = sdiv i64 %a, %b
|
| ret i64 %div
|
| }
|
| -; CHECK: div64BitSigned:
|
| +; CHECK-LABEL: div64BitSigned
|
| ; CHECK: call __divdi3
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: div64BitSigned:
|
| +; OPTM1-LABEL: div64BitSigned
|
| ; OPTM1: call __divdi3
|
| ; OPTM1: ret
|
|
|
| @@ -251,13 +251,13 @@ entry:
|
| %div = sdiv i64 %a, 12345678901234
|
| ret i64 %div
|
| }
|
| -; CHECK-LABEL: div64BitSignedConst:
|
| +; CHECK-LABEL: div64BitSignedConst
|
| ; CHECK: mov dword ptr [esp+12], 2874
|
| ; CHECK: mov dword ptr [esp+8], 1942892530
|
| ; CHECK: call __divdi3
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1-LABEL: div64BitSignedConst:
|
| +; OPTM1-LABEL: div64BitSignedConst
|
| ; OPTM1: mov dword ptr [esp+12], 2874
|
| ; OPTM1: mov dword ptr [esp+8], 1942892530
|
| ; OPTM1: call __divdi3
|
| @@ -268,11 +268,11 @@ entry:
|
| %div = udiv i64 %a, %b
|
| ret i64 %div
|
| }
|
| -; CHECK: div64BitUnsigned:
|
| +; CHECK-LABEL: div64BitUnsigned
|
| ; CHECK: call __udivdi3
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: div64BitUnsigned:
|
| +; OPTM1-LABEL: div64BitUnsigned
|
| ; OPTM1: call __udivdi3
|
| ; OPTM1: ret
|
|
|
| @@ -281,11 +281,11 @@ entry:
|
| %rem = srem i64 %a, %b
|
| ret i64 %rem
|
| }
|
| -; CHECK: rem64BitSigned:
|
| +; CHECK-LABEL: rem64BitSigned
|
| ; CHECK: call __moddi3
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: rem64BitSigned:
|
| +; OPTM1-LABEL: rem64BitSigned
|
| ; OPTM1: call __moddi3
|
| ; OPTM1: ret
|
|
|
| @@ -294,11 +294,11 @@ entry:
|
| %rem = urem i64 %a, %b
|
| ret i64 %rem
|
| }
|
| -; CHECK: rem64BitUnsigned:
|
| +; CHECK-LABEL: rem64BitUnsigned
|
| ; CHECK: call __umoddi3
|
| ; CHECK: ret
|
| ;
|
| -; OPTM1: rem64BitUnsigned:
|
| +; OPTM1-LABEL: rem64BitUnsigned
|
| ; OPTM1: call __umoddi3
|
| ; OPTM1: ret
|
|
|
| @@ -307,13 +307,13 @@ entry:
|
| %shl = shl i64 %a, %b
|
| ret i64 %shl
|
| }
|
| -; CHECK: shl64BitSigned:
|
| +; CHECK-LABEL: shl64BitSigned
|
| ; CHECK: shld
|
| ; CHECK: shl e
|
| ; CHECK: test {{.*}}, 32
|
| ; CHECK: je
|
| ;
|
| -; OPTM1: shl64BitSigned:
|
| +; OPTM1-LABEL: shl64BitSigned
|
| ; OPTM1: shld
|
| ; OPTM1: shl e
|
| ; OPTM1: test {{.*}}, 32
|
| @@ -324,13 +324,13 @@ entry:
|
| %shl = shl i64 %a, %b
|
| ret i64 %shl
|
| }
|
| -; CHECK: shl64BitUnsigned:
|
| +; CHECK-LABEL: shl64BitUnsigned
|
| ; CHECK: shld
|
| ; CHECK: shl e
|
| ; CHECK: test {{.*}}, 32
|
| ; CHECK: je
|
| ;
|
| -; OPTM1: shl64BitUnsigned:
|
| +; OPTM1-LABEL: shl64BitUnsigned
|
| ; OPTM1: shld
|
| ; OPTM1: shl e
|
| ; OPTM1: test {{.*}}, 32
|
| @@ -341,14 +341,14 @@ entry:
|
| %shr = ashr i64 %a, %b
|
| ret i64 %shr
|
| }
|
| -; CHECK: shr64BitSigned:
|
| +; CHECK-LABEL: shr64BitSigned
|
| ; CHECK: shrd
|
| ; CHECK: sar
|
| ; CHECK: test {{.*}}, 32
|
| ; CHECK: je
|
| ; CHECK: sar {{.*}}, 31
|
| ;
|
| -; OPTM1: shr64BitSigned:
|
| +; OPTM1-LABEL: shr64BitSigned
|
| ; OPTM1: shrd
|
| ; OPTM1: sar
|
| ; OPTM1: test {{.*}}, 32
|
| @@ -360,13 +360,13 @@ entry:
|
| %shr = lshr i64 %a, %b
|
| ret i64 %shr
|
| }
|
| -; CHECK: shr64BitUnsigned:
|
| +; CHECK-LABEL: shr64BitUnsigned
|
| ; CHECK: shrd
|
| ; CHECK: shr
|
| ; CHECK: test {{.*}}, 32
|
| ; CHECK: je
|
| ;
|
| -; OPTM1: shr64BitUnsigned:
|
| +; OPTM1-LABEL: shr64BitUnsigned
|
| ; OPTM1: shrd
|
| ; OPTM1: shr
|
| ; OPTM1: test {{.*}}, 32
|
| @@ -377,11 +377,11 @@ entry:
|
| %and = and i64 %b, %a
|
| ret i64 %and
|
| }
|
| -; CHECK: and64BitSigned:
|
| +; CHECK-LABEL: and64BitSigned
|
| ; CHECK: and
|
| ; CHECK: and
|
| ;
|
| -; OPTM1: and64BitSigned:
|
| +; OPTM1-LABEL: and64BitSigned
|
| ; OPTM1: and
|
| ; OPTM1: and
|
|
|
| @@ -390,11 +390,11 @@ entry:
|
| %and = and i64 %b, %a
|
| ret i64 %and
|
| }
|
| -; CHECK: and64BitUnsigned:
|
| +; CHECK-LABEL: and64BitUnsigned
|
| ; CHECK: and
|
| ; CHECK: and
|
| ;
|
| -; OPTM1: and64BitUnsigned:
|
| +; OPTM1-LABEL: and64BitUnsigned
|
| ; OPTM1: and
|
| ; OPTM1: and
|
|
|
| @@ -403,11 +403,11 @@ entry:
|
| %or = or i64 %b, %a
|
| ret i64 %or
|
| }
|
| -; CHECK: or64BitSigned:
|
| +; CHECK-LABEL: or64BitSigned
|
| ; CHECK: or
|
| ; CHECK: or
|
| ;
|
| -; OPTM1: or64BitSigned:
|
| +; OPTM1-LABEL: or64BitSigned
|
| ; OPTM1: or
|
| ; OPTM1: or
|
|
|
| @@ -416,11 +416,11 @@ entry:
|
| %or = or i64 %b, %a
|
| ret i64 %or
|
| }
|
| -; CHECK: or64BitUnsigned:
|
| +; CHECK-LABEL: or64BitUnsigned
|
| ; CHECK: or
|
| ; CHECK: or
|
| ;
|
| -; OPTM1: or64BitUnsigned:
|
| +; OPTM1-LABEL: or64BitUnsigned
|
| ; OPTM1: or
|
| ; OPTM1: or
|
|
|
| @@ -429,11 +429,11 @@ entry:
|
| %xor = xor i64 %b, %a
|
| ret i64 %xor
|
| }
|
| -; CHECK: xor64BitSigned:
|
| +; CHECK-LABEL: xor64BitSigned
|
| ; CHECK: xor
|
| ; CHECK: xor
|
| ;
|
| -; OPTM1: xor64BitSigned:
|
| +; OPTM1-LABEL: xor64BitSigned
|
| ; OPTM1: xor
|
| ; OPTM1: xor
|
|
|
| @@ -442,11 +442,11 @@ entry:
|
| %xor = xor i64 %b, %a
|
| ret i64 %xor
|
| }
|
| -; CHECK: xor64BitUnsigned:
|
| +; CHECK-LABEL: xor64BitUnsigned
|
| ; CHECK: xor
|
| ; CHECK: xor
|
| ;
|
| -; OPTM1: xor64BitUnsigned:
|
| +; OPTM1-LABEL: xor64BitUnsigned
|
| ; OPTM1: xor
|
| ; OPTM1: xor
|
|
|
| @@ -455,11 +455,11 @@ entry:
|
| %conv = trunc i64 %a to i32
|
| ret i32 %conv
|
| }
|
| -; CHECK: trunc64To32Signed:
|
| +; CHECK-LABEL: trunc64To32Signed
|
| ; CHECK: mov eax, dword ptr [esp+4]
|
| ; CHECK-NEXT: ret
|
| ;
|
| -; OPTM1: trunc64To32Signed:
|
| +; OPTM1-LABEL: trunc64To32Signed
|
| ; OPTM1: mov eax, dword ptr [esp+
|
| ; OPTM1: ret
|
|
|
| @@ -469,12 +469,12 @@ entry:
|
| %conv.ret_ext = sext i16 %conv to i32
|
| ret i32 %conv.ret_ext
|
| }
|
| -; CHECK: trunc64To16Signed:
|
| +; CHECK-LABEL: trunc64To16Signed
|
| ; CHECK: mov eax, dword ptr [esp+4]
|
| ; CHECK-NEXT: movsx eax, ax
|
| ; CHECK-NEXT: ret
|
| ;
|
| -; OPTM1: trunc64To16Signed:
|
| +; OPTM1-LABEL: trunc64To16Signed
|
| ; OPTM1: mov eax, dword ptr [esp+
|
| ; OPTM1: movsx eax,
|
| ; OPTM1: ret
|
| @@ -485,12 +485,12 @@ entry:
|
| %conv.ret_ext = sext i8 %conv to i32
|
| ret i32 %conv.ret_ext
|
| }
|
| -; CHECK: trunc64To8Signed:
|
| +; CHECK-LABEL: trunc64To8Signed
|
| ; CHECK: mov eax, dword ptr [esp+4]
|
| ; CHECK-NEXT: movsx eax, al
|
| ; CHECK-NEXT: ret
|
| ;
|
| -; OPTM1: trunc64To8Signed:
|
| +; OPTM1-LABEL: trunc64To8Signed
|
| ; OPTM1: mov eax, dword ptr [esp+
|
| ; OPTM1: movsx eax,
|
| ; OPTM1: ret
|
| @@ -525,11 +525,11 @@ entry:
|
| %conv = trunc i64 %a to i32
|
| ret i32 %conv
|
| }
|
| -; CHECK: trunc64To32Unsigned:
|
| +; CHECK-LABEL: trunc64To32Unsigned
|
| ; CHECK: mov eax, dword ptr [esp+4]
|
| ; CHECK-NEXT: ret
|
| ;
|
| -; OPTM1: trunc64To32Unsigned:
|
| +; OPTM1-LABEL: trunc64To32Unsigned
|
| ; OPTM1: mov eax, dword ptr [esp+
|
| ; OPTM1: ret
|
|
|
| @@ -539,12 +539,12 @@ entry:
|
| %conv.ret_ext = zext i16 %conv to i32
|
| ret i32 %conv.ret_ext
|
| }
|
| -; CHECK: trunc64To16Unsigned:
|
| +; CHECK-LABEL: trunc64To16Unsigned
|
| ; CHECK: mov eax, dword ptr [esp+4]
|
| ; CHECK-NEXT: movzx eax, ax
|
| ; CHECK-NEXT: ret
|
| ;
|
| -; OPTM1: trunc64To16Unsigned:
|
| +; OPTM1-LABEL: trunc64To16Unsigned
|
| ; OPTM1: mov eax, dword ptr [esp+
|
| ; OPTM1: movzx eax,
|
| ; OPTM1: ret
|
| @@ -555,12 +555,12 @@ entry:
|
| %conv.ret_ext = zext i8 %conv to i32
|
| ret i32 %conv.ret_ext
|
| }
|
| -; CHECK: trunc64To8Unsigned:
|
| +; CHECK-LABEL: trunc64To8Unsigned
|
| ; CHECK: mov eax, dword ptr [esp+4]
|
| ; CHECK-NEXT: movzx eax, al
|
| ; CHECK-NEXT: ret
|
| ;
|
| -; OPTM1: trunc64To8Unsigned:
|
| +; OPTM1-LABEL: trunc64To8Unsigned
|
| ; OPTM1: mov eax, dword ptr [esp+
|
| ; OPTM1: movzx eax,
|
| ; OPTM1: ret
|
| @@ -572,12 +572,12 @@ entry:
|
| %tobool.ret_ext = zext i1 %tobool to i32
|
| ret i32 %tobool.ret_ext
|
| }
|
| -; CHECK: trunc64To1:
|
| +; CHECK-LABEL: trunc64To1
|
| ; CHECK: mov eax, dword ptr [esp+4]
|
| ; CHECK: and eax, 1
|
| ; CHECK-NEXT: ret
|
| ;
|
| -; OPTM1: trunc64To1:
|
| +; OPTM1-LABEL: trunc64To1
|
| ; OPTM1: mov eax, dword ptr [esp+
|
| ; OPTM1: and eax, 1
|
| ; OPTM1: ret
|
| @@ -587,11 +587,11 @@ entry:
|
| %conv = sext i32 %a to i64
|
| ret i64 %conv
|
| }
|
| -; CHECK: sext32To64:
|
| +; CHECK-LABEL: sext32To64
|
| ; CHECK: mov
|
| ; CHECK: sar {{.*}}, 31
|
| ;
|
| -; OPTM1: sext32To64:
|
| +; OPTM1-LABEL: sext32To64
|
| ; OPTM1: mov
|
| ; OPTM1: sar {{.*}}, 31
|
|
|
| @@ -601,11 +601,11 @@ entry:
|
| %conv = sext i16 %a.arg_trunc to i64
|
| ret i64 %conv
|
| }
|
| -; CHECK: sext16To64:
|
| +; CHECK-LABEL: sext16To64
|
| ; CHECK: movsx
|
| ; CHECK: sar {{.*}}, 31
|
| ;
|
| -; OPTM1: sext16To64:
|
| +; OPTM1-LABEL: sext16To64
|
| ; OPTM1: movsx
|
| ; OPTM1: sar {{.*}}, 31
|
|
|
| @@ -615,11 +615,11 @@ entry:
|
| %conv = sext i8 %a.arg_trunc to i64
|
| ret i64 %conv
|
| }
|
| -; CHECK: sext8To64:
|
| +; CHECK-LABEL: sext8To64
|
| ; CHECK: movsx
|
| ; CHECK: sar {{.*}}, 31
|
| ;
|
| -; OPTM1: sext8To64:
|
| +; OPTM1-LABEL: sext8To64
|
| ; OPTM1: movsx
|
| ; OPTM1: sar {{.*}}, 31
|
|
|
| @@ -628,11 +628,11 @@ entry:
|
| %conv = zext i32 %a to i64
|
| ret i64 %conv
|
| }
|
| -; CHECK: zext32To64:
|
| +; CHECK-LABEL: zext32To64
|
| ; CHECK: mov
|
| ; CHECK: mov {{.*}}, 0
|
| ;
|
| -; OPTM1: zext32To64:
|
| +; OPTM1-LABEL: zext32To64
|
| ; OPTM1: mov
|
| ; OPTM1: mov {{.*}}, 0
|
|
|
| @@ -642,11 +642,11 @@ entry:
|
| %conv = zext i16 %a.arg_trunc to i64
|
| ret i64 %conv
|
| }
|
| -; CHECK: zext16To64:
|
| +; CHECK-LABEL: zext16To64
|
| ; CHECK: movzx
|
| ; CHECK: mov {{.*}}, 0
|
| ;
|
| -; OPTM1: zext16To64:
|
| +; OPTM1-LABEL: zext16To64
|
| ; OPTM1: movzx
|
| ; OPTM1: mov {{.*}}, 0
|
|
|
| @@ -656,11 +656,11 @@ entry:
|
| %conv = zext i8 %a.arg_trunc to i64
|
| ret i64 %conv
|
| }
|
| -; CHECK: zext8To64:
|
| +; CHECK-LABEL: zext8To64
|
| ; CHECK: movzx
|
| ; CHECK: mov {{.*}}, 0
|
| ;
|
| -; OPTM1: zext8To64:
|
| +; OPTM1-LABEL: zext8To64
|
| ; OPTM1: movzx
|
| ; OPTM1: mov {{.*}}, 0
|
|
|
| @@ -670,11 +670,11 @@ entry:
|
| %conv = zext i1 %a.arg_trunc to i64
|
| ret i64 %conv
|
| }
|
| -; CHECK: zext1To64:
|
| +; CHECK-LABEL: zext1To64
|
| ; CHECK: movzx
|
| ; CHECK: mov {{.*}}, 0
|
| ;
|
| -; OPTM1: zext1To64:
|
| +; OPTM1-LABEL: zext1To64
|
| ; OPTM1: movzx
|
| ; OPTM1: mov {{.*}}, 0
|
|
|
| @@ -698,7 +698,7 @@ if.then2: ; preds = %if.end
|
| if.end3: ; preds = %if.then2, %if.end
|
| ret void
|
| }
|
| -; CHECK: icmpEq64:
|
| +; CHECK-LABEL: icmpEq64
|
| ; CHECK: jne
|
| ; CHECK: jne
|
| ; CHECK: call
|
| @@ -706,7 +706,7 @@ if.end3: ; preds = %if.then2, %if.end
|
| ; CHECK: jne
|
| ; CHECK: call
|
| ;
|
| -; OPTM1: icmpEq64:
|
| +; OPTM1-LABEL: icmpEq64
|
| ; OPTM1: jne
|
| ; OPTM1: jne
|
| ; OPTM1: call
|
| @@ -736,7 +736,7 @@ if.then2: ; preds = %if.end
|
| if.end3: ; preds = %if.end, %if.then2
|
| ret void
|
| }
|
| -; CHECK: icmpNe64:
|
| +; CHECK-LABEL: icmpNe64
|
| ; CHECK: jne
|
| ; CHECK: jne
|
| ; CHECK: call
|
| @@ -744,7 +744,7 @@ if.end3: ; preds = %if.end, %if.then2
|
| ; CHECK: jne
|
| ; CHECK: call
|
| ;
|
| -; OPTM1: icmpNe64:
|
| +; OPTM1-LABEL: icmpNe64
|
| ; OPTM1: jne
|
| ; OPTM1: jne
|
| ; OPTM1: call
|
| @@ -772,7 +772,7 @@ if.then2: ; preds = %if.end
|
| if.end3: ; preds = %if.then2, %if.end
|
| ret void
|
| }
|
| -; CHECK: icmpGt64:
|
| +; CHECK-LABEL: icmpGt64
|
| ; CHECK: ja
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| @@ -782,7 +782,7 @@ if.end3: ; preds = %if.then2, %if.end
|
| ; CHECK: ja
|
| ; CHECK: call
|
| ;
|
| -; OPTM1: icmpGt64:
|
| +; OPTM1-LABEL: icmpGt64
|
| ; OPTM1: ja
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| @@ -812,7 +812,7 @@ if.then2: ; preds = %if.end
|
| if.end3: ; preds = %if.end, %if.then2
|
| ret void
|
| }
|
| -; CHECK: icmpGe64:
|
| +; CHECK-LABEL: icmpGe64
|
| ; CHECK: ja
|
| ; CHECK: jb
|
| ; CHECK: jae
|
| @@ -822,7 +822,7 @@ if.end3: ; preds = %if.end, %if.then2
|
| ; CHECK: jae
|
| ; CHECK: call
|
| ;
|
| -; OPTM1: icmpGe64:
|
| +; OPTM1-LABEL: icmpGe64
|
| ; OPTM1: ja
|
| ; OPTM1: jb
|
| ; OPTM1: jae
|
| @@ -852,7 +852,7 @@ if.then2: ; preds = %if.end
|
| if.end3: ; preds = %if.then2, %if.end
|
| ret void
|
| }
|
| -; CHECK: icmpLt64:
|
| +; CHECK-LABEL: icmpLt64
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| ; CHECK: jb
|
| @@ -862,7 +862,7 @@ if.end3: ; preds = %if.then2, %if.end
|
| ; CHECK: jb
|
| ; CHECK: call
|
| ;
|
| -; OPTM1: icmpLt64:
|
| +; OPTM1-LABEL: icmpLt64
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| ; OPTM1: jb
|
| @@ -892,7 +892,7 @@ if.then2: ; preds = %if.end
|
| if.end3: ; preds = %if.end, %if.then2
|
| ret void
|
| }
|
| -; CHECK: icmpLe64:
|
| +; CHECK-LABEL: icmpLe64
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| ; CHECK: jbe
|
| @@ -902,7 +902,7 @@ if.end3: ; preds = %if.end, %if.then2
|
| ; CHECK: jbe
|
| ; CHECK: call
|
| ;
|
| -; OPTM1: icmpLe64:
|
| +; OPTM1-LABEL: icmpLe64
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| ; OPTM1: jbe
|
| @@ -918,11 +918,11 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpEq64Bool:
|
| +; CHECK-LABEL: icmpEq64Bool
|
| ; CHECK: jne
|
| ; CHECK: jne
|
| ;
|
| -; OPTM1: icmpEq64Bool:
|
| +; OPTM1-LABEL: icmpEq64Bool
|
| ; OPTM1: jne
|
| ; OPTM1: jne
|
|
|
| @@ -932,11 +932,11 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpNe64Bool:
|
| +; CHECK-LABEL: icmpNe64Bool
|
| ; CHECK: jne
|
| ; CHECK: jne
|
| ;
|
| -; OPTM1: icmpNe64Bool:
|
| +; OPTM1-LABEL: icmpNe64Bool
|
| ; OPTM1: jne
|
| ; OPTM1: jne
|
|
|
| @@ -946,14 +946,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpSgt64Bool:
|
| +; CHECK-LABEL: icmpSgt64Bool
|
| ; CHECK: cmp
|
| ; CHECK: jg
|
| ; CHECK: jl
|
| ; CHECK: cmp
|
| ; CHECK: ja
|
| ;
|
| -; OPTM1: icmpSgt64Bool:
|
| +; OPTM1-LABEL: icmpSgt64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: jg
|
| ; OPTM1: jl
|
| @@ -966,14 +966,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpUgt64Bool:
|
| +; CHECK-LABEL: icmpUgt64Bool
|
| ; CHECK: cmp
|
| ; CHECK: ja
|
| ; CHECK: jb
|
| ; CHECK: cmp
|
| ; CHECK: ja
|
| ;
|
| -; OPTM1: icmpUgt64Bool:
|
| +; OPTM1-LABEL: icmpUgt64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: ja
|
| ; OPTM1: jb
|
| @@ -986,14 +986,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpSge64Bool:
|
| +; CHECK-LABEL: icmpSge64Bool
|
| ; CHECK: cmp
|
| ; CHECK: jg
|
| ; CHECK: jl
|
| ; CHECK: cmp
|
| ; CHECK: jae
|
| ;
|
| -; OPTM1: icmpSge64Bool:
|
| +; OPTM1-LABEL: icmpSge64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: jg
|
| ; OPTM1: jl
|
| @@ -1006,14 +1006,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpUge64Bool:
|
| +; CHECK-LABEL: icmpUge64Bool
|
| ; CHECK: cmp
|
| ; CHECK: ja
|
| ; CHECK: jb
|
| ; CHECK: cmp
|
| ; CHECK: jae
|
| ;
|
| -; OPTM1: icmpUge64Bool:
|
| +; OPTM1-LABEL: icmpUge64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: ja
|
| ; OPTM1: jb
|
| @@ -1026,14 +1026,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpSlt64Bool:
|
| +; CHECK-LABEL: icmpSlt64Bool
|
| ; CHECK: cmp
|
| ; CHECK: jl
|
| ; CHECK: jg
|
| ; CHECK: cmp
|
| ; CHECK: jb
|
| ;
|
| -; OPTM1: icmpSlt64Bool:
|
| +; OPTM1-LABEL: icmpSlt64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: jl
|
| ; OPTM1: jg
|
| @@ -1046,14 +1046,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpUlt64Bool:
|
| +; CHECK-LABEL: icmpUlt64Bool
|
| ; CHECK: cmp
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| ; CHECK: cmp
|
| ; CHECK: jb
|
| ;
|
| -; OPTM1: icmpUlt64Bool:
|
| +; OPTM1-LABEL: icmpUlt64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| @@ -1066,14 +1066,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpSle64Bool:
|
| +; CHECK-LABEL: icmpSle64Bool
|
| ; CHECK: cmp
|
| ; CHECK: jl
|
| ; CHECK: jg
|
| ; CHECK: cmp
|
| ; CHECK: jbe
|
| ;
|
| -; OPTM1: icmpSle64Bool:
|
| +; OPTM1-LABEL: icmpSle64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: jl
|
| ; OPTM1: jg
|
| @@ -1086,14 +1086,14 @@ entry:
|
| %cmp.ret_ext = zext i1 %cmp to i32
|
| ret i32 %cmp.ret_ext
|
| }
|
| -; CHECK: icmpUle64Bool:
|
| +; CHECK-LABEL: icmpUle64Bool
|
| ; CHECK: cmp
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| ; CHECK: cmp
|
| ; CHECK: jbe
|
| ;
|
| -; OPTM1: icmpUle64Bool:
|
| +; OPTM1-LABEL: icmpUle64Bool
|
| ; OPTM1: cmp
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| @@ -1106,12 +1106,12 @@ entry:
|
| %v0 = load i64* %__1, align 1
|
| ret i64 %v0
|
| }
|
| -; CHECK: load64:
|
| +; 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]
|
| ;
|
| -; OPTM1: load64:
|
| +; OPTM1-LABEL: load64
|
| ; OPTM1: mov e{{..}}, dword ptr [e{{..}}]
|
| ; OPTM1: mov e{{..}}, dword ptr [e{{..}}+4]
|
|
|
| @@ -1121,12 +1121,12 @@ entry:
|
| store i64 %value, i64* %__2, align 1
|
| ret void
|
| }
|
| -; CHECK: store64:
|
| +; 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]]],
|
| ;
|
| -; OPTM1: store64:
|
| +; OPTM1-LABEL: store64
|
| ; OPTM1: mov dword ptr [e[[REGISTER:[a-z]+]]+4],
|
| ; OPTM1: mov dword ptr [e[[REGISTER]]],
|
|
|
| @@ -1136,12 +1136,12 @@ entry:
|
| store i64 -2401053092306725256, i64* %a.asptr, align 1
|
| ret void
|
| }
|
| -; CHECK: store64Const:
|
| +; 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
|
| ;
|
| -; OPTM1: store64Const:
|
| +; OPTM1-LABEL: store64Const
|
| ; OPTM1: mov dword ptr [e[[REGISTER:[a-z]+]]+4], 3735928559
|
| ; OPTM1: mov dword ptr [e[[REGISTER]]], 305419896
|
|
|
| @@ -1151,7 +1151,7 @@ entry:
|
| %cond = select i1 %cmp, i64 %a, i64 %b
|
| ret i64 %cond
|
| }
|
| -; CHECK: select64VarVar:
|
| +; CHECK-LABEL: select64VarVar
|
| ; CHECK: cmp
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| @@ -1160,7 +1160,7 @@ entry:
|
| ; CHECK: cmp
|
| ; CHECK: jne
|
| ;
|
| -; OPTM1: select64VarVar:
|
| +; OPTM1-LABEL: select64VarVar
|
| ; OPTM1: cmp
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| @@ -1175,7 +1175,7 @@ entry:
|
| %cond = select i1 %cmp, i64 %a, i64 -2401053092306725256
|
| ret i64 %cond
|
| }
|
| -; CHECK: select64VarConst:
|
| +; CHECK-LABEL: select64VarConst
|
| ; CHECK: cmp
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| @@ -1184,7 +1184,7 @@ entry:
|
| ; CHECK: cmp
|
| ; CHECK: jne
|
| ;
|
| -; OPTM1: select64VarConst:
|
| +; OPTM1-LABEL: select64VarConst
|
| ; OPTM1: cmp
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| @@ -1199,7 +1199,7 @@ entry:
|
| %cond = select i1 %cmp, i64 -2401053092306725256, i64 %b
|
| ret i64 %cond
|
| }
|
| -; CHECK: select64ConstVar:
|
| +; CHECK-LABEL: select64ConstVar
|
| ; CHECK: cmp
|
| ; CHECK: jb
|
| ; CHECK: ja
|
| @@ -1208,7 +1208,7 @@ entry:
|
| ; CHECK: cmp
|
| ; CHECK: jne
|
| ;
|
| -; OPTM1: select64ConstVar:
|
| +; OPTM1-LABEL: select64ConstVar
|
| ; OPTM1: cmp
|
| ; OPTM1: jb
|
| ; OPTM1: ja
|
| @@ -1217,5 +1217,59 @@ entry:
|
| ; OPTM1: cmp
|
| ; OPTM1: jne
|
|
|
| +define internal void @icmpEq64Imm() {
|
| +entry:
|
| + %cmp = icmp eq i64 123, 234
|
| + br i1 %cmp, label %if.then, label %if.end
|
| +
|
| +if.then: ; preds = %entry
|
| + call void @func()
|
| + br label %if.end
|
| +
|
| +if.end: ; preds = %if.then, %entry
|
| + %cmp1 = icmp eq i64 345, 456
|
| + br i1 %cmp1, label %if.then2, label %if.end3
|
| +
|
| +if.then2: ; preds = %if.end
|
| + call void @func()
|
| + br label %if.end3
|
| +
|
| +if.end3: ; preds = %if.then2, %if.end
|
| + ret void
|
| +}
|
| +; 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]+}},
|
| +; OPTM1-LABEL: icmpEq64Imm
|
| +; OPTM1-LABEL-NOT: cmp {{[0-9]+}},
|
| +
|
| +define internal void @icmpLt64Imm() {
|
| +entry:
|
| + %cmp = icmp ult i64 123, 234
|
| + br i1 %cmp, label %if.then, label %if.end
|
| +
|
| +if.then: ; preds = %entry
|
| + call void @func()
|
| + br label %if.end
|
| +
|
| +if.end: ; preds = %if.then, %entry
|
| + %cmp1 = icmp slt i64 345, 456
|
| + br i1 %cmp1, label %if.then2, label %if.end3
|
| +
|
| +if.then2: ; preds = %if.end
|
| + call void @func()
|
| + br label %if.end3
|
| +
|
| +if.end3: ; preds = %if.then2, %if.end
|
| + ret void
|
| +}
|
| +; 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]+}},
|
| +; OPTM1-LABEL: icmpLt64Imm
|
| +; OPTM1-NOT: cmp {{[0-9]+}},
|
| +
|
| ; ERRORS-NOT: ICE translation error
|
| ; DUMP-NOT: SZ
|
|
|