From 46e96013a1aef280b0bbe9293a41fda24677746c Mon Sep 17 00:00:00 2001
From: Dan Gohman Because LLVM integers use a two's complement representation, this instruction
is appropriate for both signed and unsigned integers. If the signed and/or unsigned keywords are present,
- the result value of the add is undefined if signed and/or unsigned
- overflow, respectively, occurs. nuw and nsw stand for "No Unsigned Wrap"
+ and "No Signed Wrap", respectively. If the nuw and/or
+ nsw keywords are present, the result value of the add
+ is undefined if unsigned and/or signed overflow, respectively, occurs. Because LLVM integers use a two's complement representation, this instruction
is appropriate for both signed and unsigned integers. If the signed and/or unsigned keywords are present,
- the result value of the sub is undefined if signed and/or unsigned
- overflow, respectively, occurs. nuw and nsw stand for "No Unsigned Wrap"
+ and "No Signed Wrap", respectively. If the nuw and/or
+ nsw keywords are present, the result value of the sub
+ is undefined if unsigned and/or signed overflow, respectively, occurs.Syntax:
<result> = add <ty> <op1>, <op2> ; yields {ty}:result
- <result> = signed add <ty> <op1>, <op2> ; yields {ty}:result
- <result> = unsigned add <ty> <op1>, <op2> ; yields {ty}:result
- <result> = unsigned signed add <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nuw add <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nsw add <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nuw nsw add <ty> <op1>, <op2> ; yields {ty}:result
Overview:
@@ -2623,9 +2623,10 @@ Instruction
Example:
@@ -2673,10 +2674,10 @@ Instruction
Syntax:
- <result> = sub <ty> <op1>, <op2> ; yields {ty}:result
- <result> = signed sub <ty> <op1>, <op2> ; yields {ty}:result
- <result> = unsigned sub <ty> <op1>, <op2> ; yields {ty}:result
- <result> = unsigned signed sub <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = sub <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nuw sub <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nsw sub <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nuw nsw sub <ty> <op1>, <op2> ; yields {ty}:result
Overview:
@@ -2702,9 +2703,10 @@ Instruction
Example:
@@ -2759,10 +2761,10 @@ Instruction
Syntax:
- <result> = mul <ty> <op1>, <op2> ; yields {ty}:result
- <result> = signed mul <ty> <op1>, <op2> ; yields {ty}:result
- <result> = unsigned mul <ty> <op1>, <op2> ; yields {ty}:result
- <result> = unsigned signed mul <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = mul <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nuw mul <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nsw mul <ty> <op1>, <op2> ; yields {ty}:result
+ <result> = nuw nsw mul <ty> <op1>, <op2> ; yields {ty}:result
Overview:
@@ -2787,9 +2789,10 @@ Instruction
be sign-extended or zero-extended as appropriate to the width of the full
product.
If the signed and/or unsigned keywords are present, - the result value of the mul is undefined if signed and/or unsigned - overflow, respectively, occurs.
+nuw and nsw stand for "No Unsigned Wrap" + and "No Signed Wrap", respectively. If the nuw and/or + nsw keywords are present, the result value of the mul + is undefined if unsigned and/or signed overflow, respectively, occurs.
-- cgit v1.1