@@ -329,7 +329,7 @@ define half @fcopysign(half %x, half %y) {
329
329
; CHECK-LABEL: fcopysign:
330
330
; CHECK: ## %bb.0:
331
331
; 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))
333
333
; CHECK-NEXT: retq
334
334
%a = call half @llvm.copysign.f16 (half %x , half %y )
335
335
ret half %a
@@ -341,7 +341,7 @@ define half @fround(half %x) {
341
341
; CHECK: ## %bb.0:
342
342
; 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]
343
343
; 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)
345
345
; CHECK-NEXT: vaddsh %xmm2, %xmm0, %xmm0
346
346
; CHECK-NEXT: vrndscalesh $11, %xmm0, %xmm0, %xmm0
347
347
; CHECK-NEXT: retq
@@ -384,7 +384,7 @@ declare <8 x half> @llvm.fabs.v8f16(<8 x half>)
384
384
define <8 x half > @fcopysignv8f16 (<8 x half > %x , <8 x half > %y ) {
385
385
; CHECK-LABEL: fcopysignv8f16:
386
386
; 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))
388
388
; CHECK-NEXT: retq
389
389
%a = call <8 x half > @llvm.copysign.v8f16 (<8 x half > %x , <8 x half > %y )
390
390
ret <8 x half > %a
@@ -396,7 +396,7 @@ define <8 x half> @roundv8f16(<8 x half> %x) {
396
396
; CHECK: ## %bb.0:
397
397
; 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]
398
398
; 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)
400
400
; CHECK-NEXT: vaddph %xmm2, %xmm0, %xmm0
401
401
; CHECK-NEXT: vrndscaleph $11, %xmm0, %xmm0
402
402
; CHECK-NEXT: retq
@@ -439,7 +439,7 @@ declare <16 x half> @llvm.fabs.v16f16(<16 x half>)
439
439
define <16 x half > @fcopysignv16f16 (<16 x half > %x , <16 x half > %y ) {
440
440
; CHECK-LABEL: fcopysignv16f16:
441
441
; 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))
443
443
; CHECK-NEXT: retq
444
444
%a = call <16 x half > @llvm.copysign.v16f16 (<16 x half > %x , <16 x half > %y )
445
445
ret <16 x half > %a
@@ -451,7 +451,7 @@ define <16 x half> @roundv16f16(<16 x half> %x) {
451
451
; CHECK: ## %bb.0:
452
452
; 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]
453
453
; 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)
455
455
; CHECK-NEXT: vaddph %ymm2, %ymm0, %ymm0
456
456
; CHECK-NEXT: vrndscaleph $11, %ymm0, %ymm0
457
457
; CHECK-NEXT: retq
@@ -494,7 +494,7 @@ declare <32 x half> @llvm.fabs.v32f16(<32 x half>)
494
494
define <32 x half > @fcopysignv32f16 (<32 x half > %x , <32 x half > %y ) {
495
495
; CHECK-LABEL: fcopysignv32f16:
496
496
; 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))
498
498
; CHECK-NEXT: retq
499
499
%a = call <32 x half > @llvm.copysign.v32f16 (<32 x half > %x , <32 x half > %y )
500
500
ret <32 x half > %a
@@ -506,7 +506,7 @@ define <32 x half> @roundv32f16(<32 x half> %x) {
506
506
; CHECK: ## %bb.0:
507
507
; 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]
508
508
; 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)
510
510
; CHECK-NEXT: vaddph %zmm2, %zmm0, %zmm0
511
511
; CHECK-NEXT: vrndscaleph $11, %zmm0, %zmm0
512
512
; CHECK-NEXT: retq
0 commit comments