Change memcpy/memset/memmove to have dest and source alignments.
[oota-llvm.git] / test / CodeGen / AArch64 / arm64-arith.ll
index ed9b569e21821b7cfdcc797c35e18d85ccaec1b0..d5d9a1b98174b3baafa6d633cbda45194a998067 100644 (file)
@@ -123,7 +123,8 @@ entry:
 define i64 @t14(i16 %a, i64 %x) nounwind ssp {
 entry:
 ; CHECK-LABEL: t14:
-; CHECK: add   x0, x1, w0, uxth #3
+; CHECK: and   w8, w0, #0xffff
+; CHECK: add   x0, x1, w8, uxtw #3
 ; CHECK: ret
   %c = zext i16 %a to i64
   %d = shl i64 %c, 3
@@ -260,3 +261,11 @@ define i64 @f3(i64 %a) nounwind readnone ssp {
   %res = mul nsw i64 %a, 17
   ret i64 %res
 }
+
+define i32 @f4(i32 %a) nounwind readnone ssp {
+; CHECK-LABEL: f4:
+; CHECK-NEXT: add w0, w0, w0, lsl #1
+; CHECK-NEXT: ret
+  %res = mul i32 %a, 3
+  ret i32 %res
+}