diff --git a/src/D3D12MemAlloc.cpp b/src/D3D12MemAlloc.cpp
index d0d9c83..808efcc 100644
--- a/src/D3D12MemAlloc.cpp
+++ b/src/D3D12MemAlloc.cpp
@@ -243,19 +243,32 @@
     #define D3D12MA_ATOMIC_UINT64 std::atomic<UINT64>
 #endif
 
+/*
+Returns true if given number is a power of two.
+T must be unsigned integer number or signed integer but always nonnegative.
+For 0 returns true.
+*/
+template <typename T>
+inline bool IsPow2(T x)
+{
+    return (x & (x-1)) == 0;
+}
+
 // Aligns given value up to nearest multiply of align value. For example: AlignUp(11, 8) = 16.
 // Use types like UINT, uint64_t as T.
 template <typename T>
-static inline T AlignUp(T val, T align)
+static inline T AlignUp(T val, T alignment)
 {
-	return (val + align - 1) / align * align;
+    D3D12MA_HEAVY_ASSERT(IsPow2(alignment));
+	return (val + alignment - 1) & ~(alignment - 1);
 }
 // Aligns given value down to nearest multiply of align value. For example: AlignUp(11, 8) = 8.
 // Use types like UINT, uint64_t as T.
 template <typename T>
-static inline T AlignDown(T val, T align)
+static inline T AlignDown(T val, T alignment)
 {
-    return val / align * align;
+    D3D12MA_HEAVY_ASSERT(IsPow2(alignment));
+    return val & ~(alignment - 1);
 }
 
 // Division with mathematical rounding to nearest number.
@@ -270,17 +283,6 @@
     return (x + y - 1) / y;
 }
 
-/*
-Returns true if given number is a power of two.
-T must be unsigned integer number or signed integer but always nonnegative.
-For 0 returns true.
-*/
-template <typename T>
-inline bool IsPow2(T x)
-{
-    return (x & (x-1)) == 0;
-}
-
 // Returns smallest power of 2 greater or equal to v.
 static inline UINT NextPow2(UINT v)
 {
