|  | ; RUN: llvm-as < %s | llvm-dis | llvm-as | llvm-dis | FileCheck %s | 
|  | ; RUN: verify-uselistorder %s | 
|  |  | 
|  | ; CHECK: !named = !{!0, !1, !2, !3, !3, !4, !5, !5, !6} | 
|  | !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8} | 
|  |  | 
|  | !0 = distinct !{} | 
|  | !1 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) | 
|  | ; CHECK: !1 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) | 
|  |  | 
|  | ; CHECK-NEXT: !2 = !DITemplateTypeParameter(name: "Ty", type: !1) | 
|  | ; CHECK-NEXT: !3 = !DITemplateTypeParameter(type: !1) | 
|  | !2 = !DITemplateTypeParameter(name: "Ty", type: !1) | 
|  | !3 = !DITemplateTypeParameter(type: !1) | 
|  | !4 = !DITemplateTypeParameter(name: "", type: !1) | 
|  |  | 
|  | ; CHECK-NEXT: !4 = !DITemplateValueParameter(name: "V", type: !1, value: i32 7) | 
|  | ; CHECK-NEXT: !5 = !DITemplateValueParameter(type: !1, value: i32 7) | 
|  | ; CHECK-NEXT: !6 = !DITemplateValueParameter(tag: DW_TAG_GNU_template_template_param, name: "param", type: !1, value: !"template") | 
|  | !5 = !DITemplateValueParameter(name: "V", type: !1, value: i32 7) | 
|  | !6 = !DITemplateValueParameter(type: !1, value: i32 7) | 
|  | !7 = !DITemplateValueParameter(tag: DW_TAG_template_value_parameter, | 
|  | name: "", type: !1, value: i32 7) | 
|  | !8 = !DITemplateValueParameter(tag: DW_TAG_GNU_template_template_param, name: "param", type: !1, value: !"template") |