Lines Matching full:floor

22 ; floor. We can fold in the nan check into the instruction, but the
28 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
29 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
36 ; GFX6-IR-NEXT: store float [[FLOOR]], ptr addrspace(1) [[IP]], align 4
42 ; IR-FRACT-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
47 ; IR-FRACT-NEXT: store float [[FLOOR]], ptr addrspace(1) [[IP]], align 4
123 %floor = tail call float @llvm.floor.f32(float %x)
124 %sub = fsub float %x, %floor
131 store float %floor, ptr addrspace(1) %ip, align 4
139 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
140 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
144 ; GFX6-IR-NEXT: store float [[FLOOR]], ptr addrspace(1) [[IP]], align 4
150 ; IR-FRACT-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
152 ; IR-FRACT-NEXT: store float [[FLOOR]], ptr addrspace(1) [[IP]], align 4
213 %floor = tail call float @llvm.floor.f32(float %x)
214 %sub = fsub float %x, %floor
218 store float %floor, ptr addrspace(1) %ip, align 4
227 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
228 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
233 ; IR-NEXT: store float [[FLOOR]], ptr addrspace(1) [[IP]], align 4
311 %floor = tail call float @llvm.floor.f32(float %x)
312 %sub = fsub float %x, %floor
317 store float %floor, ptr addrspace(1) %ip, align 4
325 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
326 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
372 %floor = tail call float @llvm.floor.f32(float %x)
373 %sub = fsub float %x, %floor
382 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
383 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
433 %floor = tail call float @llvm.floor.f32(float %x)
434 %sub = fsub float %x, %floor
443 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
444 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub nsz float [[X]], [[FLOOR]]
490 %floor = tail call float @llvm.floor.f32(float %x)
491 %sub = fsub nsz float %x, %floor
500 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call <2 x float> @llvm.floor.v2f32(<2 x float> [[X]])
501 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub <2 x float> [[X]], [[FLOOR]]
559 %floor = tail call <2 x float> @llvm.floor.v2f32(<2 x float> %x)
560 %sub = fsub <2 x float> %x, %floor
569 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
570 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
578 ; IR-FRACT-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
579 ; IR-FRACT-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
646 %floor = tail call float @llvm.floor.f32(float %x)
647 %sub = fsub float %x, %floor
657 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
658 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
704 %floor = tail call float @llvm.floor.f32(float %x)
705 %sub = fsub float %x, %floor
716 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
717 ; IR-NEXT: [[SUB:%.*]] = fsub nnan float [[X]], [[FLOOR]]
767 %floor = tail call float @llvm.floor.f32(float %x)
768 %sub = fsub nnan float %x, %floor
777 ; IR-NEXT: [[FLOOR:%.*]] = tail call nnan float @llvm.floor.f32(float [[X]])
778 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
828 %floor = tail call nnan float @llvm.floor.f32(float %x)
829 %sub = fsub float %x, %floor
838 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
839 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
885 %floor = tail call float @llvm.floor.f32(float %x)
886 %sub = fsub float %x, %floor
896 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
897 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
947 %floor = tail call float @llvm.floor.f32(float %x)
948 %sub = fsub float %x, %floor
958 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
959 ; IR-NEXT: [[SUB:%.*]] = fsub float [[FLOOR]], [[X]]
1009 %floor = tail call float @llvm.floor.f32(float %x)
1010 %sub = fsub float %floor, %x
1020 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.trunc.f32(float [[X]])
1021 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1071 %floor = tail call float @llvm.trunc.f32(float %x)
1072 %sub = fsub float %x, %floor
1082 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[Y]])
1083 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1133 %floor = tail call float @llvm.floor.f32(float %y)
1134 %sub = fsub float %x, %floor
1144 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
1145 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1195 %floor = tail call float @llvm.floor.f32(float %x)
1196 %sub = fsub float %x, %floor
1205 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
1206 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1226 %floor = tail call float @llvm.floor.f32(float %x)
1227 %sub = fsub float %x, %floor
1239 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
1240 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1290 %floor = tail call float @llvm.floor.f32(float %x)
1291 %sub = fsub float %x, %floor
1302 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
1303 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1353 %floor = tail call float @llvm.floor.f32(float %x)
1354 %sub = fsub float %x, %floor
1365 ; IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
1366 ; IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1430 %floor = tail call float @llvm.floor.f32(float %x)
1431 %sub = fsub float %x, %floor
1442 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
1443 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub half [[X]], [[FLOOR]]
1450 ; GFX7-IR-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
1451 ; GFX7-IR-NEXT: [[SUB:%.*]] = fsub half [[X]], [[FLOOR]]
1503 %floor = tail call half @llvm.floor.f16(half %x)
1504 %sub = fsub half %x, %floor
1513 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call <2 x half> @llvm.floor.v2f16(<2 x half> [[X]])
1514 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub <2 x half> [[X]], [[FLOOR]]
1521 ; GFX7-IR-NEXT: [[FLOOR:%.*]] = tail call <2 x half> @llvm.floor.v2f16(<2 x half> [[X]])
1522 ; GFX7-IR-NEXT: [[SUB:%.*]] = fsub <2 x half> [[X]], [[FLOOR]]
1599 %floor = tail call <2 x half> @llvm.floor.v2f16(<2 x half> %x)
1600 %sub = fsub <2 x half> %x, %floor
1609 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call double @llvm.floor.f64(double [[X]])
1610 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub double [[X]], [[FLOOR]]
1665 %floor = tail call double @llvm.floor.f64(double %x)
1666 %sub = fsub double %x, %floor
1675 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
1676 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub half [[X]], [[FLOOR]]
1680 ; GFX6-IR-NEXT: store half [[FLOOR]], ptr addrspace(1) [[IP]], align 4
1686 ; GFX7-IR-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
1687 ; GFX7-IR-NEXT: [[SUB:%.*]] = fsub half [[X]], [[FLOOR]]
1691 ; GFX7-IR-NEXT: store half [[FLOOR]], ptr addrspace(1) [[IP]], align 4
1697 ; IR-LEGALF16-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
1699 ; IR-LEGALF16-NEXT: store half [[FLOOR]], ptr addrspace(1) [[IP]], align 4
1769 %floor = tail call half @llvm.floor.f16(half %x)
1770 %sub = fsub half %x, %floor
1774 store half %floor, ptr addrspace(1) %ip, align 4
1782 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call double @llvm.floor.f64(double [[X]])
1783 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub double [[X]], [[FLOOR]]
1787 ; GFX6-IR-NEXT: store double [[FLOOR]], ptr addrspace(1) [[IP]], align 4
1793 ; IR-FRACT-NEXT: [[FLOOR:%.*]] = tail call double @llvm.floor.f64(double [[X]])
1795 ; IR-FRACT-NEXT: store double [[FLOOR]], ptr addrspace(1) [[IP]], align 4
1866 %floor = tail call double @llvm.floor.f64(double %x)
1867 %sub = fsub double %x, %floor
1871 store double %floor, ptr addrspace(1) %ip, align 4
1879 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
1880 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1930 %floor = tail call float @llvm.floor.f32(float %x)
1931 %sub = fsub float %x, %floor
1942 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call float @llvm.floor.f32(float [[X]])
1943 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub float [[X]], [[FLOOR]]
1993 %floor = tail call float @llvm.floor.f32(float %x)
1994 %sub = fsub float %x, %floor
2005 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call <2 x float> @llvm.floor.v2f32(<2 x float> [[X]])
2006 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub <2 x float> [[X]], [[FLOOR]]
2013 ; GFX6-IR-NEXT: store <2 x float> [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2019 ; IR-FRACT-NEXT: [[FLOOR:%.*]] = tail call <2 x float> @llvm.floor.v2f32(<2 x float> [[X]])
2029 ; IR-FRACT-NEXT: store <2 x float> [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2128 %floor = tail call <2 x float> @llvm.floor.v2f32(<2 x float> %x)
2129 %sub = fsub <2 x float> %x, %floor
2136 store <2 x float> %floor, ptr addrspace(1) %ip, align 4
2144 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call double @llvm.floor.f64(double [[X]])
2145 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub double [[X]], [[FLOOR]]
2152 ; GFX6-IR-NEXT: store double [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2158 ; IR-FRACT-NEXT: [[FLOOR:%.*]] = tail call double @llvm.floor.f64(double [[X]])
2163 ; IR-FRACT-NEXT: store double [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2255 %floor = tail call double @llvm.floor.f64(double %x)
2256 %sub = fsub double %x, %floor
2263 store double %floor, ptr addrspace(1) %ip, align 4
2271 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
2272 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub half [[X]], [[FLOOR]]
2279 ; GFX6-IR-NEXT: store half [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2285 ; GFX7-IR-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
2286 ; GFX7-IR-NEXT: [[SUB:%.*]] = fsub half [[X]], [[FLOOR]]
2293 ; GFX7-IR-NEXT: store half [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2299 ; IR-LEGALF16-NEXT: [[FLOOR:%.*]] = tail call half @llvm.floor.f16(half [[X]])
2304 ; IR-LEGALF16-NEXT: store half [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2391 %floor = tail call half @llvm.floor.f16(half %x)
2392 %sub = fsub half %x, %floor
2399 store half %floor, ptr addrspace(1) %ip, align 4
2407 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call <2 x half> @llvm.floor.v2f16(<2 x half> [[X]])
2408 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub <2 x half> [[X]], [[FLOOR]]
2415 ; GFX6-IR-NEXT: store <2 x half> [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2421 ; GFX7-IR-NEXT: [[FLOOR:%.*]] = tail call <2 x half> @llvm.floor.v2f16(<2 x half> [[X]])
2422 ; GFX7-IR-NEXT: [[SUB:%.*]] = fsub <2 x half> [[X]], [[FLOOR]]
2429 ; GFX7-IR-NEXT: store <2 x half> [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2435 ; IR-LEGALF16-NEXT: [[FLOOR:%.*]] = tail call <2 x half> @llvm.floor.v2f16(<2 x half> [[X]])
2445 ; IR-LEGALF16-NEXT: store <2 x half> [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2580 %floor = tail call <2 x half> @llvm.floor.v2f16(<2 x half> %x)
2581 %sub = fsub <2 x half> %x, %floor
2588 store <2 x half> %floor, ptr addrspace(1) %ip, align 4
2596 ; GFX6-IR-NEXT: [[FLOOR:%.*]] = tail call <2 x double> @llvm.floor.v2f64(<2 x double> [[X]])
2597 ; GFX6-IR-NEXT: [[SUB:%.*]] = fsub <2 x double> [[X]], [[FLOOR]]
2604 ; GFX6-IR-NEXT: store <2 x double> [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2610 ; IR-FRACT-NEXT: [[FLOOR:%.*]] = tail call <2 x double> @llvm.floor.v2f64(<2 x double> [[X]])
2620 ; IR-FRACT-NEXT: store <2 x double> [[FLOOR]], ptr addrspace(1) [[IP]], align 4
2743 %floor = tail call <2 x double> @llvm.floor.v2f64(<2 x double> %x)
2744 %sub = fsub <2 x double> %x, %floor
2751 store <2 x double> %floor, ptr addrspace(1) %ip, align 4
2755 declare half @llvm.floor.f16(half) #0
2756 declare float @llvm.floor.f32(float) #0
2757 declare double @llvm.floor.f64(double) #0
2758 declare <2 x double> @llvm.floor.v2f64(<2 x double>) #0
2759 declare <2 x float> @llvm.floor.v2f32(<2 x float>) #0
2760 declare <2 x half> @llvm.floor.v2f16(<2 x half>) #0