137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s 237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// .exitm is encountered in a normal macro expansion 437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.macro REP 537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.rept 3 637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 0 737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.exitm 837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endr 937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endm 1037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen HinesREP 1137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// Only the output from the first rept expansion should make it through: 1237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK: .long 0 1337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK-NOT: .long 0 1437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 1537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// .exitm is in a true branch 1637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.macro A 1737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.if 1 1837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 1 1937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.exitm 2037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endif 2137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 1 2237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endm 2337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen HinesA 2437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK: .long 1 2537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK-NOT: .long 1 2637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 2737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// .exitm is in a false branch 2837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.macro B 2937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.if 1 3037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 2 3137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.else 3237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.exitm 3337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endif 3437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 2 3537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endm 3637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen HinesB 3737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK: .long 2 3837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK: .long 2 3937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 4037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 4137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// .exitm is in a false branch that is encountered prior to the true branch 4237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.macro C 4337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.if 0 4437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.exitm 4537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.else 4637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 3 4737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endif 4837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 3 4937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endm 5037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen HinesC 5137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK: .long 3 5237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK: .long 3 5337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 5437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// .exitm is in a macro that's expanded in a conditional block. 5537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.macro D 5637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 4 5737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.exitm 5837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.long 4 5937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endm 6037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.if 1 6137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen HinesD 6237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.endif 6337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK: .long 4 6437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines// CHECK-NOT: .long 4 65