• Home
  • Raw
  • Download

Lines Matching +full:cast +full:- +full:align

1 ; RUN: opt < %s -gvn -S | FileCheck %s
4 …2 (%struct.A*)* @_ZN1A3fooEv to i8*), i8* bitcast (i32 (%struct.A*)* @_ZN1A3barEv to i8*)], align 8
10 ; CHECK-LABEL: define void @_Z1gb(
18 %vtable = load i8**, i8*** %1, align 8
24 %vtable1.cast = bitcast i8** %vtable to i32 (%struct.A*)**
25 %2 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vtable1.cast, align 8
37 %3 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vfn4, align 8
47 ; CHECK-LABEL: define void @invariantGroupHandling(i1 zeroext %p) {
54 %vtable = load i8**, i8*** %1, align 8, !invariant.group !0
60 %vtable1.cast = bitcast i8** %vtable to i32 (%struct.A*)**
61 %2 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vtable1.cast, align 8
65 %vtable1 = load i8**, i8*** %1, align 8, !invariant.group !0
66 %vtable2.cast = bitcast i8** %vtable1 to i32 (%struct.A*)**
67 %call1 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vtable2.cast, align 8
70 ; CHECK-NOT: call i32 @_ZN1A3fooEv(
73 %vtable2 = load i8**, i8*** %1, align 8, !invariant.group !0
74 %vtable3.cast = bitcast i8** %vtable2 to i32 (%struct.A*)**
75 %call4 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vtable3.cast, align 8
76 ; CHECK-NOT: call i32 @_ZN1A3fooEv(
80 %vtable3 = load %struct.A*, %struct.A** %b, align 8, !invariant.group !0
81 %vtable4.cast = bitcast %struct.A* %vtable3 to i32 (%struct.A*)**
82 %vfun = load i32 (%struct.A*)*, i32 (%struct.A*)** %vtable4.cast, align 8
83 ; CHECK-NOT: call i32 @_ZN1A3fooEv(
93 %3 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vfn4, align 8
104 ; CHECK-LABEL: define i32 @main()
112 %vtable = load i8**, i8*** %1, align 8
115 %vtable1.cast = bitcast i8** %vtable to i32 (%struct.A*)**
118 %2 = load i32 (%struct.A*)*, i32 (%struct.A*)** %vtable1.cast, align 8
125 ; CHECK-LABEL: define float @_Z1gf(float %p)
129 %p.addr = alloca float, align 4
130 %f = alloca float, align 4
131 store float %p, float* %p.addr, align 4
133 store float 3.000000e+00, float* %f, align 4
134 %0 = load float, float* %p.addr, align 4
135 %1 = load float, float* %f, align 4
143 ; CHECK-LABEL: define float @_Z1hf(float %p)
147 %p.addr = alloca float, align 4
148 store float %p, float* %p.addr, align 4
150 %0 = load float, float* %p.addr, align 4
158 ; CHECK-LABEL: define float @_Z1if(float %p)
161 %p.addr = alloca float, align 4
162 store float %p, float* %p.addr, align 4
164 %0 = load float, float* %p.addr, align 4
165 %cmp = fcmp ueq float %0, 3.000000e+00 ; no nnan flag - can't propagate
168 ; CHECK-NOT: ret float 3.000000e+00
173 ; CHECK-LABEL: define i32 @_Z1ii(i32 %p)
190 ; CHECK-LABEL: define i32 @_Z1ij(i32 %p)
199 ; CHECK-NOT: %cmp2 =
201 ; CHECK-NOT: call void @llvm.assume(
211 ; CHECK-LABEL: define i32 @_Z1ik(i32 %p)
220 ; CHECK-NOT: %cmp3 =
231 ; basic block that has a loop back-edge pointing to itself.
233 ; CHECK-LABEL: define i32 @_Z1il(i32 %val, i1 %k)
239 ; CHECK-NEXT: %cmp = icmp eq i32 %val, 50
253 ; CHECK-LABEL: define i1 @_z1im(i32 %val, i1 %k, i1 %j)
259 ; CHECK-NEXT: br label %meh