1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -passes=gvn -S < %s | FileCheck %s 3 4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128-ni:4" 5target triple = "x86_64-unknown-linux-gnu" 6 7define void @nipre(ptr noalias %p, ptr noalias %p2, i8 %jmp) { 8 9; CHECK-LABEL: @nipre( 10; CHECK: a: 11; CHECK: [[L1:%.*]] = load ptr addrspace(4), ptr [[P:%.*]] 12; CHECK: b: 13; CHECK: [[L2:%.*]] = load ptr addrspace(4), ptr [[P]] 14; CHECK: c: 15; CHECK-NEXT: [[L3_PRE:%.*]] = load ptr addrspace(4), ptr %p 16 17entry: 18 switch i8 %jmp, label %c [ i8 0, label %a 19 i8 1, label %b] 20a: 21 %l1 = load ptr addrspace(4), ptr %p 22 store ptr addrspace(4) %l1, ptr %p2 23 br label %tail 24b: 25 %l2 = load ptr addrspace(4), ptr %p 26 store ptr addrspace(4) %l2, ptr %p2 27 br label %tail 28c: 29 br label %tail 30tail: 31 %l3 = load ptr addrspace(4), ptr %p 32 store ptr addrspace(4) %l3, ptr %p2 33 ret void 34} 35