35 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -S -passes=gvn %s | FileCheck %s3 4; NOTE: A test to confirm GVN doesn't collapse loads of token-like types into5; NOTE: phi nodes.6 7define ptr @main() {8; CHECK-LABEL: define ptr @main() {9; CHECK-NEXT: [[ENTRY:.*:]]10; CHECK-NEXT: br i1 false, label %[[ENTRY_IF_END_I_CRIT_EDGE:.*]], label %[[IF_THEN_I:.*]]11; CHECK: [[ENTRY_IF_END_I_CRIT_EDGE]]:12; CHECK-NEXT: br label %[[IF_END_I:.*]]13; CHECK: [[IF_THEN_I]]:14; CHECK-NEXT: [[TMP0:%.*]] = load target("dx.RawBuffer", half, 1, 0), ptr null, align 415; CHECK-NEXT: [[TMP1:%.*]] = tail call ptr @llvm.dx.resource.getpointer.p0.tdx.RawBuffer_f16_1_0t(target("dx.RawBuffer", half, 1, 0) [[TMP0]], i32 0)16; CHECK-NEXT: br label %[[IF_END_I]]17; CHECK: [[IF_END_I]]:18; CHECK-NEXT: [[TMP2:%.*]] = load target("dx.RawBuffer", half, 1, 0), ptr null, align 419; CHECK-NEXT: [[TMP3:%.*]] = tail call ptr @llvm.dx.resource.getpointer.p0.tdx.RawBuffer_f16_1_0t(target("dx.RawBuffer", half, 1, 0) [[TMP2]], i32 0)20; CHECK-NEXT: ret ptr [[TMP3]]21;22entry:23 br i1 false, label %if.end.i, label %if.then.i24 25if.then.i: ; preds = %entry26 %0 = load target("dx.RawBuffer", half, 1, 0), ptr null, align 427 %1 = tail call ptr @llvm.dx.resource.getpointer.p0.tdx.RawBuffer_f16_1_0t(target("dx.RawBuffer", half, 1, 0) %0, i32 0)28 br label %if.end.i29 30if.end.i: ; preds = %if.then.i, %entry31 %2 = load target("dx.RawBuffer", half, 1, 0), ptr null, align 432 %3 = tail call ptr @llvm.dx.resource.getpointer.p0.tdx.RawBuffer_f16_1_0t(target("dx.RawBuffer", half, 1, 0) %2, i32 0)33 ret ptr %334}35