; RUN: llvm-as < %s | llvm-dis -disable-output
	%0 = type { %object.ModuleInfo.__vtbl*, i8*, %"byte[]", %1, %"ClassInfo[]", i32, void ()*, void ()*, void ()*, i8*, void ()* }		; type %0
	%1 = type { i64, %object.ModuleInfo* }		; type %1
	%2 = type { i32, void ()*, i8* }		; type %2
	%"ClassInfo[]" = type { i64, %object.ClassInfo** }
	%"Interface[]" = type { i64, %object.Interface* }
	%"ModuleInfo[]" = type { i64, %object.ModuleInfo** }
	%ModuleReference = type { %ModuleReference*, %object.ModuleInfo* }
	%"OffsetTypeInfo[]" = type { i64, %object.OffsetTypeInfo* }
	%"byte[]" = type { i64, i8* }
	%object.ClassInfo = type { %object.ClassInfo.__vtbl*, i8*, %"byte[]", %"byte[]", %"void*[]", %"Interface[]", %object.ClassInfo*, i8*, i8*, i32, i8*, %"OffsetTypeInfo[]", i8*, %object.TypeInfo* }
	%object.ClassInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i64 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, %object.Object* (%object.ClassInfo*)* }
	%object.Interface = type { %object.ClassInfo*, %"void*[]", i64 }
	%object.ModuleInfo = type { %object.ModuleInfo.__vtbl*, i8*, %"byte[]", %"ModuleInfo[]", %"ClassInfo[]", i32, void ()*, void ()*, void ()*, i8*, void ()* }
	%object.ModuleInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i64 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)* }
	%object.Object = type { %object.ModuleInfo.__vtbl*, i8* }
	%object.OffsetTypeInfo = type { i64, %object.TypeInfo* }
	%object.TypeInfo = type { %object.TypeInfo.__vtbl*, i8* }
	%object.TypeInfo.__vtbl = type { %object.ClassInfo*, %"byte[]" (%object.Object*)*, i64 (%object.Object*)*, i32 (%object.Object*, %object.Object*)*, i32 (%object.Object*, %object.Object*)*, i64 (%object.TypeInfo*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i32 (%object.TypeInfo*, i8*, i8*)*, i64 (%object.TypeInfo*)*, void (%object.TypeInfo*, i8*, i8*)*, %object.TypeInfo* (%object.TypeInfo*)*, %"byte[]" (%object.TypeInfo*)*, i32 (%object.TypeInfo*)*, %"OffsetTypeInfo[]" (%object.TypeInfo*)* }
	%"void*[]" = type { i64, i8** }
@_D10ModuleInfo6__vtblZ = external constant %object.ModuleInfo.__vtbl		; <ptr> [#uses=1]
@.str = internal constant [20 x i8] c"tango.core.BitManip\00"		; <ptr> [#uses=1]
@_D5tango4core8BitManip8__ModuleZ = global %0 { %object.ModuleInfo.__vtbl* @_D10ModuleInfo6__vtblZ, i8* null, %"byte[]" { i64 19, i8* getelementptr ([20 x i8], [20 x i8]* @.str, i32 0, i32 0) }, %1 zeroinitializer, %"ClassInfo[]" zeroinitializer, i32 4, void ()* null, void ()* null, void ()* null, i8* null, void ()* null }		; <ptr> [#uses=1]
@_D5tango4core8BitManip11__moduleRefZ = internal global %ModuleReference { %ModuleReference* null, %object.ModuleInfo* bitcast (%0* @_D5tango4core8BitManip8__ModuleZ to %object.ModuleInfo*) }		; <ptr> [#uses=2]
@_Dmodule_ref = external global %ModuleReference*		; <ptr> [#uses=2]
@llvm.global_ctors = appending constant [1 x %2] [%2 { i32 65535, void ()* @_D5tango4core8BitManip16__moduleinfoCtorZ, i8* null }]		; <ptr> [#uses=0]

define fastcc i32 @_D5tango4core8BitManip6popcntFkZi(i32 %x_arg) nounwind readnone {
entry:
	%tmp1 = lshr i32 %x_arg, 1		; <i32> [#uses=1]
	%tmp2 = and i32 %tmp1, 1431655765		; <i32> [#uses=1]
	%tmp4 = sub i32 %x_arg, %tmp2		; <i32> [#uses=2]
	%tmp6 = lshr i32 %tmp4, 2		; <i32> [#uses=1]
	%tmp7 = and i32 %tmp6, 858993459		; <i32> [#uses=1]
	%tmp9 = and i32 %tmp4, 858993459		; <i32> [#uses=1]
	%tmp10 = add i32 %tmp7, %tmp9		; <i32> [#uses=2]
	%tmp12 = lshr i32 %tmp10, 4		; <i32> [#uses=1]
	%tmp14 = add i32 %tmp12, %tmp10		; <i32> [#uses=1]
	%tmp16 = and i32 %tmp14, 252645135		; <i32> [#uses=2]
	%tmp18 = lshr i32 %tmp16, 8		; <i32> [#uses=1]
	%tmp20 = add i32 %tmp18, %tmp16		; <i32> [#uses=1]
	%tmp22 = and i32 %tmp20, 16711935		; <i32> [#uses=2]
	%tmp24 = lshr i32 %tmp22, 16		; <i32> [#uses=1]
	%tmp26 = add i32 %tmp24, %tmp22		; <i32> [#uses=1]
	%tmp28 = and i32 %tmp26, 65535		; <i32> [#uses=1]
	ret i32 %tmp28
}

define fastcc i32 @_D5tango4core8BitManip7bitswapFkZk(i32 %x_arg) nounwind readnone {
entry:
	%tmp1 = lshr i32 %x_arg, 1		; <i32> [#uses=1]
	%tmp2 = and i32 %tmp1, 1431655765		; <i32> [#uses=1]
	%tmp4 = shl i32 %x_arg, 1		; <i32> [#uses=1]
	%tmp5 = and i32 %tmp4, -1431655766		; <i32> [#uses=1]
	%tmp6 = or i32 %tmp2, %tmp5		; <i32> [#uses=2]
	%tmp8 = lshr i32 %tmp6, 2		; <i32> [#uses=1]
	%tmp9 = and i32 %tmp8, 858993459		; <i32> [#uses=1]
	%tmp11 = shl i32 %tmp6, 2		; <i32> [#uses=1]
	%tmp12 = and i32 %tmp11, -858993460		; <i32> [#uses=1]
	%tmp13 = or i32 %tmp9, %tmp12		; <i32> [#uses=2]
	%tmp15 = lshr i32 %tmp13, 4		; <i32> [#uses=1]
	%tmp16 = and i32 %tmp15, 252645135		; <i32> [#uses=1]
	%tmp18 = shl i32 %tmp13, 4		; <i32> [#uses=1]
	%tmp19 = and i32 %tmp18, -252645136		; <i32> [#uses=1]
	%tmp20 = or i32 %tmp16, %tmp19		; <i32> [#uses=2]
	%tmp22 = lshr i32 %tmp20, 8		; <i32> [#uses=1]
	%tmp23 = and i32 %tmp22, 16711935		; <i32> [#uses=1]
	%tmp25 = shl i32 %tmp20, 8		; <i32> [#uses=1]
	%tmp26 = and i32 %tmp25, -16711936		; <i32> [#uses=1]
	%tmp27 = or i32 %tmp23, %tmp26		; <i32> [#uses=2]
	%tmp29 = lshr i32 %tmp27, 16		; <i32> [#uses=1]
	%tmp31 = shl i32 %tmp27, 16		; <i32> [#uses=1]
	%tmp32 = or i32 %tmp29, %tmp31		; <i32> [#uses=1]
	ret i32 %tmp32
}

define internal void @_D5tango4core8BitManip16__moduleinfoCtorZ() nounwind {
moduleinfoCtorEntry:
	%current = load %ModuleReference*, %ModuleReference** @_Dmodule_ref		; <ptr> [#uses=1]
	store %ModuleReference* %current, %ModuleReference** getelementptr (%ModuleReference, %ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, i32 0, i32 0)
	store %ModuleReference* @_D5tango4core8BitManip11__moduleRefZ, %ModuleReference** @_Dmodule_ref
	ret void
}
!llvm.ldc.classinfo._D6Object7__ClassZ = !{!0}
!llvm.ldc.classinfo._D10ModuleInfo7__ClassZ = !{!1}
!0 = !{%object.Object undef, i1 false, i1 false}
!1 = !{%object.ModuleInfo undef, i1 false, i1 false}
