@@ -329,7 +329,7 @@ define half @fcopysign(half %x, half %y) {
329329; CHECK-LABEL: fcopysign:
330330; CHECK: ## %bb.0:
331331; CHECK-NEXT: vpbroadcastw {{.*#+}} xmm2 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN]
332- ; CHECK-NEXT: vpternlogd $226, % xmm1, % xmm2, % xmm0
332+ ; CHECK-NEXT: vpternlogd {{.*#+}} xmm0 = xmm1 ^ ( xmm2 & ( xmm0 ^ xmm1))
333333; CHECK-NEXT: retq
334334 %a = call half @llvm.copysign.f16 (half %x , half %y )
335335 ret half %a
@@ -341,7 +341,7 @@ define half @fround(half %x) {
341341; CHECK: ## %bb.0:
342342; CHECK-NEXT: vpbroadcastw {{.*#+}} xmm1 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
343343; CHECK-NEXT: vpbroadcastw {{.*#+}} xmm2 = [4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1]
344- ; CHECK-NEXT: vpternlogq $248, %xmm1, %xmm0, % xmm2
344+ ; CHECK-NEXT: vpternlogq {{.*#+}} xmm2 = xmm2 | (xmm0 & xmm1)
345345; CHECK-NEXT: vaddsh %xmm2, %xmm0, %xmm0
346346; CHECK-NEXT: vrndscalesh $11, %xmm0, %xmm0, %xmm0
347347; CHECK-NEXT: retq
@@ -384,7 +384,7 @@ declare <8 x half> @llvm.fabs.v8f16(<8 x half>)
384384define <8 x half > @fcopysignv8f16 (<8 x half > %x , <8 x half > %y ) {
385385; CHECK-LABEL: fcopysignv8f16:
386386; CHECK: ## %bb.0:
387- ; CHECK-NEXT: vpternlogd $228, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, % xmm1, % xmm0
387+ ; CHECK-NEXT: vpternlogd {{.*#+}} xmm0 = xmm1 ^ (mem & ( xmm0 ^ xmm1))
388388; CHECK-NEXT: retq
389389 %a = call <8 x half > @llvm.copysign.v8f16 (<8 x half > %x , <8 x half > %y )
390390 ret <8 x half > %a
@@ -396,7 +396,7 @@ define <8 x half> @roundv8f16(<8 x half> %x) {
396396; CHECK: ## %bb.0:
397397; CHECK-NEXT: vpbroadcastw {{.*#+}} xmm1 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
398398; CHECK-NEXT: vpbroadcastw {{.*#+}} xmm2 = [4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1]
399- ; CHECK-NEXT: vpternlogq $248, %xmm1, %xmm0, % xmm2
399+ ; CHECK-NEXT: vpternlogq {{.*#+}} xmm2 = xmm2 | (xmm0 & xmm1)
400400; CHECK-NEXT: vaddph %xmm2, %xmm0, %xmm0
401401; CHECK-NEXT: vrndscaleph $11, %xmm0, %xmm0
402402; CHECK-NEXT: retq
@@ -439,7 +439,7 @@ declare <16 x half> @llvm.fabs.v16f16(<16 x half>)
439439define <16 x half > @fcopysignv16f16 (<16 x half > %x , <16 x half > %y ) {
440440; CHECK-LABEL: fcopysignv16f16:
441441; CHECK: ## %bb.0:
442- ; CHECK-NEXT: vpternlogd $228, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, % ymm1, % ymm0
442+ ; CHECK-NEXT: vpternlogd {{.*#+}} ymm0 = ymm1 ^ (mem & ( ymm0 ^ ymm1))
443443; CHECK-NEXT: retq
444444 %a = call <16 x half > @llvm.copysign.v16f16 (<16 x half > %x , <16 x half > %y )
445445 ret <16 x half > %a
@@ -451,7 +451,7 @@ define <16 x half> @roundv16f16(<16 x half> %x) {
451451; CHECK: ## %bb.0:
452452; CHECK-NEXT: vpbroadcastw {{.*#+}} ymm1 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
453453; CHECK-NEXT: vpbroadcastw {{.*#+}} ymm2 = [4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1]
454- ; CHECK-NEXT: vpternlogq $248, %ymm1, %ymm0, % ymm2
454+ ; CHECK-NEXT: vpternlogq {{.*#+}} ymm2 = ymm2 | (ymm0 & ymm1)
455455; CHECK-NEXT: vaddph %ymm2, %ymm0, %ymm0
456456; CHECK-NEXT: vrndscaleph $11, %ymm0, %ymm0
457457; CHECK-NEXT: retq
@@ -494,7 +494,7 @@ declare <32 x half> @llvm.fabs.v32f16(<32 x half>)
494494define <32 x half > @fcopysignv32f16 (<32 x half > %x , <32 x half > %y ) {
495495; CHECK-LABEL: fcopysignv32f16:
496496; CHECK: ## %bb.0:
497- ; CHECK-NEXT: vpternlogd $228, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, % zmm1, % zmm0
497+ ; CHECK-NEXT: vpternlogd {{.*#+}} zmm0 = zmm1 ^ (mem & ( zmm0 ^ zmm1))
498498; CHECK-NEXT: retq
499499 %a = call <32 x half > @llvm.copysign.v32f16 (<32 x half > %x , <32 x half > %y )
500500 ret <32 x half > %a
@@ -506,7 +506,7 @@ define <32 x half> @roundv32f16(<32 x half> %x) {
506506; CHECK: ## %bb.0:
507507; CHECK-NEXT: vpbroadcastw {{.*#+}} zmm1 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
508508; CHECK-NEXT: vpbroadcastw {{.*#+}} zmm2 = [4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1,4.9976E-1]
509- ; CHECK-NEXT: vpternlogq $248, %zmm1, %zmm0, % zmm2
509+ ; CHECK-NEXT: vpternlogq {{.*#+}} zmm2 = zmm2 | (zmm0 & zmm1)
510510; CHECK-NEXT: vaddph %zmm2, %zmm0, %zmm0
511511; CHECK-NEXT: vrndscaleph $11, %zmm0, %zmm0
512512; CHECK-NEXT: retq
0 commit comments