diff --git a/share/qtcreator/debugger/misctypes.py b/share/qtcreator/debugger/misctypes.py
index 11515d9dd827819c7c4345ca5278ad5149453c76..ef416c61a53a9cb84ee24bcf54fae3036581f261 100644
--- a/share/qtcreator/debugger/misctypes.py
+++ b/share/qtcreator/debugger/misctypes.py
@@ -48,6 +48,30 @@ def qdump____m128(d, value):
         else: # Default, As float
             d.putArrayData(d.lookupType("float"), value.address, 4)
 
+def qdump____m128i(d, value):
+    data = d.readMemory(value.address, 16)
+    d.putValue(':'.join("%04x" % int(data[i:i+4], 16) for i in xrange(0, 32, 4)))
+    d.putNumChild(4)
+    if d.isExpanded():
+        # fake 4 children as arrays
+        with Children(d):
+            with SubItem(d, "uint8x16"):
+                d.putEmptyValue()
+                d.putType("unsigned char [16]")
+                d.putArrayData(d.lookupType("unsigned char"), value.address, 16)
+                d.putAddress(value.address)
+            with SubItem(d, "uint16x8"):
+                d.putEmptyValue()
+                d.putType("unsigned short [8]")
+                d.putArrayData(d.lookupType("unsigned short"), value.address, 8)
+            with SubItem(d, "uint32x4"):
+                d.putEmptyValue()
+                d.putType("unsigned int [4]")
+                d.putArrayData(d.lookupType("unsigned int"), value.address, 4)
+            with SubItem(d, "uint64x2"):
+                d.putEmptyValue()
+                d.putType("unsigned long long [2]")
+                d.putArrayData(d.lookupType("unsigned long long"), value.address, 2)
 
 #######################################################################
 #