xref: /llvm-project/llvm/test/CodeGen/PowerPC/splitstore-check-volatile.ll (revision 5403c59c608c08c8ecd4303763f08eb046eb5e4d)
1; Test that CodeGenPrepare respect the volatile flag when splitting a store.
2;
3; RUN: opt -S -mtriple=powerpc64le -codegenprepare -force-split-store < %s  | FileCheck %s
4
5define void @fun(ptr %Src, ptr %Dst) {
6; CHECK: store volatile i16 %8, ptr %Dst
7  %1 = load i16, ptr %Src
8  %2 = trunc i16 %1 to i8
9  %3 = lshr i16 %1, 8
10  %4 = trunc i16 %3 to i8
11  %5 = zext i8 %2 to i16
12  %6 = zext i8 %4 to i16
13  %7 = shl nuw i16 %6, 8
14  %8 = or i16 %7, %5
15  store volatile i16 %8, ptr %Dst
16  ret void
17}
18