1 # RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s 2 3 --- | 4 5 define i32 @volatile_inc(i32* %x) { 6 entry: 7 %0 = load volatile i32, i32* %x 8 %1 = add i32 %0, 1 9 store volatile i32 %1, i32* %x 10 ret i32 %1 11 } 12 13 ... 14 --- 15 name: volatile_inc 16 tracksRegLiveness: true 17 liveins: 18 - { reg: '%rdi' } 19 body: | 20 bb.0.entry: 21 liveins: %rdi 22 ; CHECK: [[@LINE+1]]:50: duplicate 'volatile' memory operand flag 23 %eax = MOV32rm %rdi, 1, _, 0, _ :: (volatile volatile load 4 from %ir.x) 24 %eax = INC32r killed %eax, implicit-def dead %eflags 25 MOV32mr killed %rdi, 1, _, 0, _, %eax :: (volatile store 4 into %ir.x) 26 RETQ %eax 27 ... 28